我正在开发和应用程序,需要对链接列表进行分页。我正在使用django non-rel和djangoappengine。
我知道在djangoappengine.db.utils中找到的函数set_cursor和get_cursor,这样可以很容易地向前导航:
paginate_by = 25
queryset = Link.objects.all()
cursor = request.GET.get('cursor') #Alternatively passed via ajax in a POST request
if cursor:
queryset = set_cursor(queryset, cursor)
links = queryset[0:paginate_by]
next_cursor = get_cursor(links)
然而,我正在努力向后导航。 GAE中的官方程序是reverse the cursor and to use a reversed query。这使用了reversed()函数,它是Cursor类的一部分,我不确定我可以在Django中访问它。
但是如何在djangoappengie中反转光标?
如果不可能,我相信替代方法是存储游标客户端,通过ajax传递它们,然后根据页码生成查询。不过,我宁愿尽可能地遵循官方程序。
谢谢
答案 0 :(得分:0)
我不知道回答你自己的问题的政策是什么...... 在further research之后我发现了一个反转光标的函数,即:
from google.appengine.datastore import datastore_query
def reverse_cursor(cursor):
return datastore_query.Cursor.from_websafe_string(cursor).reversed().to_websafe_string()
我会将它存储在我的utils.py中并获得反向光标应该很简单。