Краткая версия моего вопроса : Каков синтаксис Gql для фильтрации запросов на основе ссылочного свойства?
Длинная версия моего вопроса : Предположим,следующая модель:
Class User(db.Model):
username = db.StringProperty()
password = db.StringProperty()
Class Portfolios(db.Model):
portname = db.StringProperty()
Class Portfolio_Owners(db.Model):
port_id = db.ReferenceProperty(Portfolios)
user_id = db.ReferenceProperty(User)
key_string = db.StringProperty()
Я хочу запросить Portfolio_Owners на основе user_id (который является ReferenceProperty).
Однако я не могу запросить строку свойства .user_id, как в случае StringProperty (следующий список возвращает пустой список):
key_string = 'aglwb3J0Zm9saW9yCwsSBFVzZXIY6gEM'
que=db.GqlQuery("SELECT * FROM Portfolio_Owners WHERE user_id=:1", key_string)
entity = que.fetch(limit=10)
Также я не могу запросить вКлючевой объект этого пользователя (следующий также возвращает пустой список):
key_object = db.Key('aglwb3J0Zm9saW9yCwsSBFVzZXIY6gEM')
que=db.GqlQuery("SELECT * FROM Portfolio_Owners WHERE __key__=:1", key_object)
entity = que.fetch(limit=10)
И да, я уверен, что user_id правильный ... вот копия-вставка из Просмотрщика хранилища данных:
Entity Kind Portfolio_Owners
Entity Key aglwb3J0Zm9saW9yFwsSEFBvcnRmb2xpb19Pd25lcnMYhQIM
ID 261
user_id (Key) aglwb3J0Zm9saW9yCwsSBFVzZXIY6gEM
User: id=234
port_id (Key) aglwb3J0Zm9saW9yEQsSClBvcnRmb2xpb3MYhAIM
Portfolios: id=260
Я не нашел ответа в документах App Engine, досках сообщений App Engine или в других местах на SO.
спасибо!