2012-03-29 46 views
9

Google App Engine's NDB中是否存在modelname_set(后向引用属性)的等效项?Google App Engine ndb等效于modelname_set(反向引用属性)

在旧的数据库模型实体有described the back-reference property as

背参考属性默认的名称modelname_set(用小写字母模型类的名称,而“_set”添加到结束),并且可以使用ReferenceProperty构造函数的collection_name参数进行调整。

我注意到这个属性似乎不存在NDB db.Model实例。

NDB是否具有与后退参考属性等效的功能?

回答

13

在NDB中没有直接的后向引用属性,因为NDB并不完全使用与原始数据存储客户端相同的范式。您可以使用KeyProperty作为前向引用,然后使用查询来查找KeyProperty设置为后向引用的所有内容。

class Comment(ndb.Model) 
    source = ndb.KeyProperty() 

qry = Comment.query().filter(source=ndb.Key('Source', 'Sandy')) 
+0

谢谢迈克尔。只是好奇,'桑迪'在你的例子中有什么目的? – 2012-03-29 12:55:40

+2

“桑迪”只是密钥的(用户分配的)ID,就像“源”一样。 – 2012-04-01 03:52:19