Фильтрация по имени ключа объекта в Google App Engine на Python

В 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__ >=", ?????)

Ответы

Ответ 1

from google.appengine.api.datastore import Key
query.filter("__key__ >=", Key.from_path('User', 'abc'))

Ответ 2

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

from google.appengine.api.datastore import Key

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