AppEngine Python获取所有引用

时间:2012-04-21 21:01:55

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

我的问题很简单。我有Model_AModel_B

class Lobby(db.Model):
    name = db.StringProperty()  

class UserModel(db.Model):
    name = db.StringProperty()
    lobby = db.ReferenceProperty(Lobby, collection_name="lobby")

现在我从存储中获取/所有Lobby个实体,我想访问每个大厅的相关用户。我不能通过致电lobby_entity.aUsers来做到这一点。

这是如何实现的?

1 个答案:

答案 0 :(得分:1)

使用GQL:

lobbies = Lobby.all().fetch(10)
keys = [lobby.key() for lobby in lobbies]
q = aUser.gql('WHERE lobby IN :1', keys)
users = q.fetch(1000)

请注意,如果您有很多游说,这不会很好; IN查询仅支持最多30个值。 (https://developers.google.com/appengine/docs/python/datastore/gqlreference)

PS。请不要使用小写字母启动模型类名称。查看PEP 8。