2013-09-22 71 views
0


如何创建两个不同实体模型之间的关系?GAE(Python)在ndb中定义实体关系

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

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

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

按我的理解,从定义之前引用用户茎的错误。 我做了以下解决它,我用一个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

谢谢

回答

2

由于the docs显示,kind参数可以是一个字符串。所以使用kind='User'