Фильтрация по имени ключа сущности в Google App Engine на Python - PullRequest
15 голосов
/ 30 марта 2010

В Google App Engine для запроса хранилища данных с помощью Python можно использовать GQL или Entity.all (), а затем отфильтровать его. Так, например, это эквивалентно

gql = "SELECT * FROM User WHERE age >= 18"
db.GqlQuery(gql)

и

query = User.all()
query.filter("age >=", 18)

Теперь также можно запрашивать вещи по имени ключа. Я знаю, что в GQL вы делаете это так

gql = "SELECT * FROM User WHERE __key__ >= Key('User', 'abc')"
db.GqlQuery(gql)

Но как бы вы теперь использовали фильтр, чтобы сделать то же самое?

query = User.all()
query.filter("__key__ >=", ?????)

Ответы [ 2 ]

16 голосов
/ 30 марта 2010
from google.appengine.api.datastore import Key
query.filter("__key__ >=", Key.from_path('User', 'abc'))
3 голосов
/ 12 января 2011

У меня аналогичный способ работал, в то время как функция "from_path" не работала в моем случае, этот работал:

from google.appengine.api.datastore import Key

key = Key(your_string_with_key)
query.filter("__key__ = ", key)
...