0

私の問題は単純です。私は持っていModel_AますModel_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

これはどのように達成されますか?

4

1 に答える 1

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 をチェックしてください。

于 2012-04-22T05:33:46.973 に答える