如何使ndb模型声明顺序独立

how to make ndb model declarations order independent

我刚开始使用 python 和应用引擎。我试过像这样实现一些 ndb 模型:

class A(ndb.Model):
   some_property = ndb.KeyProperty(B , required=True)

class B(ndb.Model):
   some_other_property = ndb.KeyProperty(A , required=True)

当然你不会在生产中做这样的事情,因为它是一个非常糟糕的设计,但它确实说明了问题。

此代码失败,因为定义 some_property 时,B 尚未定义。

问题是我如何让 类 相互引用,而不考虑声明的顺序?

将 class 个名称之一转换为字符串:

class A(ndb.Model):
   some_property = ndb.KeyProperty('B' , required=True)

class B(ndb.Model):
   some_other_property = ndb.KeyProperty(A , required=True)