如何在django appengine中反转光标?

时间:2013-01-11 18:12:19

标签: google-app-engine django-nonrel djangoappengine

我正在开发和应用程序,需要对链接列表进行分页。我正在使用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传递它们,然后根据页码生成查询。不过,我宁愿尽可能地遵循官方程序。

谢谢

1 个答案:

答案 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中并获得反向光标应该很简单。