我为我的应用程序实现了基本的分页,一次显示 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
事件顺序,
- 我首先使用空光标进行普通查询。我得到 5 个带有光标的项目。
- 用户从列表中删除一个项目,我用空光标重新查询前五个项目。虽然,我得到了项目,但我没有得到光标。