如何按用户在Google App引擎中搜索实体?

时间:2011-10-13 23:19:04

标签: python google-app-engine datamodel

我正在尝试查找与当前用户相关的用户实体,我似乎无法在用户存储到数据库后找到该用户。

当我第一次创建用户时,我所做的调用如下所示:

newPlayer = model.Player(parent=model.user_key(), user=users.GetCurrentUser(), publicName = nickname)
newPlayer.put()

其中model.Player是我尝试查找的元素,而model.user_key()获取全局祖先用户密钥。

当我去查找它们时,我会执行以下操作:

model.Player.all().filter('user =', usr).ancestor(user_key()).fetch(1)

模型Player类看起来像这样:

class Player(db.Model):
    user = db.UserProperty
    publicName = db.StringProperty()

每次都返回一个空列表。我在这做错了什么?我现在开始质疑决定论......

1 个答案:

答案 0 :(得分:1)

用户不是数据存储区中的类,因此您无法让玩家成为其中的一员。这应该有效:

newPlayer = model.Player(user=users.get_current_user(), publicName='john')
newPlayer.put()

usr = users.get_current_user()
john = model.Player.all().filter('user =', usr).fetch(1)
print john.nickname
>> 'john'

注意: get_current_user()不是 GetCurrentUser() source