0

我为我的应用程序实现了基本的分页,一次显示 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. 用户从列表中删除一个项目,我用空光标重新查询前五个项目。虽然,我得到了项目,但我没有得到光标。
4

0 回答 0