我有两个班级:
class A(ndb.Model):
first_prop = ndb.StructuredProperty(B)
class B(ndb.Model):
second_prop = ndb.StructuredProperty(A)
将类名放在引号中会出错。
实现它的合理方法是什么,这使得代码封装完好无损?
答案 0 :(得分:2)
您可以在定义模型后指定属性。请参阅_fix_up_properties
doc strings 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()
答案 1 :(得分:1)
您可能希望使用ndb.KeyProperty
代替ndb.StructuredProperty
。使用前者,让两个类相互引用是完全可以接受的。