Reading: http://code.google.com/appengine/docs/python/datastore/gqlreference.htmlApp Engine Datastore IN Operator - как использовать?
Я хочу использовать:
: = В
, но не уверен, как заставить его работать. Предположим следующее:
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» оператор.
Какой прекрасный ответ ... Я воплощу это сегодня вечером. Я получил код работает (да!), Поэтому оптимизация может прийти позже. :) Сейчас я на регулярных выражениях. Трахающиеся. Глава. На. Клавиатура. –
Брэндон - я использую приложение под названием regexbuddy, которое очень помогает. Не связаны с ними каким-либо образом. –