GAE(Python)在ndb中定义实体关系

时间:2013-09-22 12:44:01

标签: python google-app-engine google-cloud-datastore


您将如何在两个不同的实体模型之间建立关系?

当我尝试这个时,我收到一个错误:

class Spec(ndb.Model):
    userKey = ndb.KeyProperty(kind=User)

class User(ndb.Model):
    specs = ndb.KeyProperty(kind=Spec, repeated=True)

我理解的错误源于在定义之前引用User。 我做了以下解决方案,我使用了get_by_id,但我不喜欢这个解决方案:

class Spec(ndb.Model):
    userKey = ndb.IntegerProperty()

class User(ndb.Model):
    specs = ndb.KeyProperty(kind=Spec, repeated=True)

你如何解决这个问题,以便我可以像第一个例子中那样定义我的模型?更好的是,你将如何在自己的文件/模块中定义每个类。

我尝试过这篇文章,但似乎已经过时且与ndb无关。 https://developers.google.com/appengine/articles/modeling

谢谢

1 个答案:

答案 0 :(得分:2)

the docs所示,kind参数可以是字符串。因此,请使用kind='User'