Как мне искать сущность в движке Google App по пользователю? - PullRequest
2 голосов
/ 14 октября 2011

Я пытаюсь найти пользовательский объект, который связан с текущим пользователем, и я не могу найти пользователя после того, как он сохранен в базе данных.

Когда я впервые создаю пользователя, мой звонок выглядит следующим образом:

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 Ответ

1 голос
/ 14 октября 2011

Пользователь не является классом в хранилище данных, поэтому вы не можете сделать его ребенком дочерним. Это должно работать:

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'

Примечание: is get_current_user () not GetCurrentUser () source

...