删除后,ndb fetch_page不返回下一个光标

时间:2013-04-29 05:10:39

标签: google-app-engine app-engine-ndb

我为我的应用程序实现了基本分页,我一次显示5个项目(ndb.Model)。我使用下面的代码查询它们,

  fetched_resutls,next_cursor, more = Content.query(Content.user_email == user_email).order(-Content.sent_time).fetch_page(5, start_cursor=cursor)

当用户删除项目时,我使用下面的代码删除项目并重新查询前五项。我传递一个空光标删除。在此重新查询期间,虽然有更多项目,但next_cursor为None。任何人都可以解释原因吗?

        contentIntId = int(content_id)
        content = Content.get_by_id(contentIntId)
        content.key.delete()
        fetched_results, next_cursor = Content.find_by_email(user.email(), cursor)

如果我在它之前没有删除的情况下进行简单的重新查询,那么我确实得到了下一个光标。

-----编辑1 -------

find_by_email代码

  def find_by_email(cls, user_email, cursor):
      fetched_resutls,next_cursor, more = Content.query(Content.user_email == user_email).order(-Content.sent_time).fetch_page(5, start_cursor=cursor)
      li = []
      ep = None
      for p in fetched_resutls:
          ep = p.to_dict()
          ep['id'] = str(p.key.id())
          li.append(ep)

      next_bookmark = None
      if more:
        next_bookmark = next_cursor.to_websafe_string()
      return li, next_bookmark

活动顺序

  1. 我首先使用空光标进行普通查询。我得到了5件物品 光标回来了。
  2. 用户从列表中删除项目,然后重新查询 五个带有空光标的项目。虽然,我得到了物品,但我没有得到光标。

0 个答案:

没有答案