Как применить фильтр к коллекции хранилища данных Google на основе ключа? - PullRequest
0 голосов
/ 15 марта 2012

Я пытаюсь использовать метод filter () на основе ключевого аргумента.Например:

user_id="agxkZXZ-emFiZXRhLTJyCgsSBFVzZXIYGAw"
d=datamodel.Task.all()
d.filter("user=",user_id) 
results=d.fetch(1024)

Это приводит к нулевым результатам, и это, вероятно, потому что ключ не в правильном формате.Если бы здесь, где gql, мне пришлось бы использовать функцию Key () следующим образом:

db.gqlQuery("select * from Task where user=Key(:1)",user_id)

Однако я не думаю, что могу использовать функцию Key () внутри фильтра, но должен быть какой-то Pythonфункциональный эквивалент ... Есть ли способ правильно отформатировать ключ для использования в методе filter ()?

1 Ответ

4 голосов
/ 15 марта 2012

Вы действительно можете использовать Key экземпляров в фильтре!

from google.appengine.api.datastore_types import Key

user_id="agxkZXZ-emFiZXRhLTJyCgsSBFVzZXIYGAw"
datamodel.Task.all().filter('user', Key(user_id))
...