Чтение: http://code.google.com/appengine/docs/python/datastore/gqlreference.html
Я хочу использовать:
: = IN
но я не уверен, как заставить это работать. Давайте предположим следующее
class User(db.Model):
name = db.StringProperty()
class UniqueListOfSavedItems(db.Model):
str = db.StringPropery()
datesaved = db.DateTimeProperty()
class UserListOfSavedItems(db.Model):
name = db.ReferenceProperty(User, collection='user')
str = db.ReferenceProperty(UniqueListOfSavedItems, collection='itemlist')
Как я могу сделать запрос, который возвращает мне список сохраненных элементов для пользователя? Очевидно, я могу сделать:
q = db.Gql("SELECT * FROM UserListOfSavedItems WHERE name :=", user[0].name)
но это дает мне список ключей. Теперь я хочу взять этот список и включить его в запрос, чтобы получить поле str из UniqueListOfSavedItems. Я думал, что смогу сделать:
q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems WHERE := str in q")
но что-то не так ... есть идеи? Это (я на работе, так что не могу сейчас это проверить):
q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems __key__ := str in q)
примечание: какая чертовски трудная проблема для поиска, потому что все, что меня действительно волнует, это оператор "IN".