python ndb 类 相互引用
python ndb classes that reference each other
我有两个 classes:
class A(ndb.Model):
first_prop = ndb.StructuredProperty(B)
class B(ndb.Model):
second_prop = ndb.StructuredProperty(A)
将 class 名称放在引号中会出错。
实现它的合理方法是什么,它能保持代码封装完好无损?
您可能想使用 ndb.KeyProperty
而不是 ndb.StructuredProperty
。使用前者,完全可以接受两个 类 相互引用。
您可以在 定义模型后分配 属性 。请参阅 _fix_up_properties
文档字符串 here。
class A(ndb.Model):
pass
class B(ndb.Model):
pass
A.first_prop = ndb.StructuredProperty(B)
B.second_prop = ndb.StructuredProperty(A)
A._fix_up_properties()
B._fix_up_properties()
我有两个 classes:
class A(ndb.Model):
first_prop = ndb.StructuredProperty(B)
class B(ndb.Model):
second_prop = ndb.StructuredProperty(A)
将 class 名称放在引号中会出错。
实现它的合理方法是什么,它能保持代码封装完好无损?
您可能想使用 ndb.KeyProperty
而不是 ndb.StructuredProperty
。使用前者,完全可以接受两个 类 相互引用。
您可以在 定义模型后分配 属性 。请参阅 _fix_up_properties
文档字符串 here。
class A(ndb.Model):
pass
class B(ndb.Model):
pass
A.first_prop = ndb.StructuredProperty(B)
B.second_prop = ndb.StructuredProperty(A)
A._fix_up_properties()
B._fix_up_properties()