Как заменить тип запроса gql на Query? - PullRequest
1 голос
/ 24 октября 2011

У меня есть следующий код, который хорошо работает:

comments = PersonComment.gql('WHERE ANCESTOR IS :parent AND verified=True ORDER BY added DESC', parent=person_key).fetch(PAGE_SIZE_COMMENTS+1, (page)*PAGE_SIZE_COMMENTS)

Я хочу заменить его на:

  comments = db.Query(PersonComment)
  comments.ancestor(person_key)
  comments.filter('verified = ', True)
  comments.order('-added')
  comments.fetch(PAGE_SIZE_COMMENTS+1, (page)*PAGE_SIZE_COMMENTS)

Но он не работает.Что там не так?

1 Ответ

5 голосов
/ 24 октября 2011

fetch возвращает набор результатов; comments по-прежнему является объектом запроса. Вы можете сделать это:

comments = comments.fetch(PAGE_SIZE_COMMENTS+1, (page)*PAGE_SIZE_COMMENTS)

Или вызовите объект запроса как-нибудь еще, чтобы избежать путаницы.

Кроме того, использование fetch со смещением для нумерации страниц действительно неэффективно. Попробуйте использовать курсоры запросов .

...