Фильтр ReferenceProperty - PullRequest
       5

Фильтр ReferenceProperty

0 голосов
/ 22 июля 2011

У меня есть вид списка и вид пользователя. В настоящее время я использую IntegerProperty, чтобы связать идентификаторы пользователей со списками, но я хочу переключиться на ReferenceProperty. В настоящее время я использую этот код (с IntegerProperty):

db.GqlQuery("SELECT * FROM List WHERE UserID = :1", userid)

Как должен выглядеть код с ReferenceProperty? Сценарий имеет числовой идентификатор пользователя (идентификатор пользователя).

Ответы [ 2 ]

3 голосов
/ 25 июля 2011

Во-первых, вам нужно создать ключ из вашего идентификатора.Вы можете сделать это следующим образом (при условии, что ваша сущность User не имеет родителя):

user_key = db.Key.from_path('UserInfo', user_id)

Теперь вы можете использовать его в запросе так же, как и в любом другом случае:

db.GqlQuery("SELECT * FROM List WHERE user_key = :1", user_key)

Илиэквивалентно запросу вместо GQL:

List.all().filter("user_key =", user_key)
1 голос
/ 22 июля 2011

С ReferenceProperty вам понадобится фактическая сущность для ссылки.Таким образом, код по сути будет таким же, за исключением того, что идентификатор пользователя не будет int, это будет сущность (или я думаю, что ключ к сущности будет работать в этом случае).Если вы пытаетесь переключиться на ReferenceProperty, я предполагаю, что вы хотите начать использовать сущность User в своем списке вместо идентификатора пользователя, чтобы она выглядела примерно так ...

user = User.all()[0] # or some other thing to get your user
db.GqlQuery("SELECT * FROM List WHERE user = :1", user)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...