使用ndb KeyProperty获取已连接实体的列表

时间:2016-02-29 19:48:42

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

使用Google App Engine for Python。看来当你在旧的db模型下连接数据存储区实体时,你可以很容易地获得连接实体的列表,但我似乎无法用ndb做同样的事情。

我有:

class User(ndb.Model):
    username = ndb.StringProperty()

class Collection(ndb.Model):
    owner = ndb.KeyProperty(User)
    name = ndb.StringProperty()
    photos = ndb.StringProperty(repeated=True)

因此每个集合都是由所有者创建的。我以为我能够通过以下方式获得用户的收藏:

collections = user.collections

但结果是:

    collections = user.collections

AttributeError: 'User' object has no attribute 'collections'

从文档中,您似乎可以通过指定collection_name关键字在db上执行此操作,但我没有看到ndb等效项。

1 个答案:

答案 0 :(得分:1)

ndb不会创建反向引用。但是查询转发同样容易:

 Collection.query(Collection.user==user.key)