如何用Query替换gql类型的查询?

时间:2011-10-24 17:14:44

标签: google-app-engine google-cloud-datastore

我有以下代码,效果很好:

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 个答案:

答案 0 :(得分:5)

fetch返回结果集; comments仍然是Query对象。你可以这样做:

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

或者将您的查询对象称为其他内容以避免混淆。

顺便说一句,使用带偏移的fetch进行分页实际上效率很低。考虑使用query cursors