Google App Engine + реляционная база данных - получить идентификатор - PullRequest
0 голосов
/ 29 декабря 2010

У меня есть вопрос, на что похожа моя модель БД:

class UserAnswer (db.Model):
user = db.UserProperty()
name = db.StringProperty()
email = db.StringProperty()
occupation = db.IntegerProperty()
howreach = db.IntegerProperty()
rating = db.IntegerProperty()
comment = db.StringProperty(multiline=True)

class Involves(db.Model):
shortName = db.StringProperty()
fullName = db.StringProperty()

class UserInvolves(db.Model):
userAnswer = db.ReferenceProperty(UserAnswer)
involve = db.ReferenceProperty(Involves)

Как мне сделать что-то вроде этого:

def getInvolves(user):
results = db.GqlQuery("Select * from UserInvolves as ui where ui.userAnswer.ID='"+user.ID+"'")

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

Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 517, in __call__
handler.post(*groups)
File "C:\Program Files\Google\google_appengine\demos\b00213576\main.py", line 217, in post
involves = getInvolves(answer)
File "C:\Program Files\Google\google_appengine\demos\b00213576\main.py", line 128, in getInvolves
results = db.GqlQuery("Select * from UserInvolves as ui where ui.userAnswer.ID='"+user.ID+"'")
AttributeError: 'UserAnswer' object has no attribute 'ID'

И я не знаю, как конвертировать в GAE: /

1 Ответ

0 голосов
/ 30 декабря 2010
user_answer = UserAnswer.get_by_id(user.ID)
for user_involve in user_answer.userinvolves_set:
    # these are your UserInvolves items
...