【问题标题】:How to reverse a cursor in djangoappengine?如何在 djangoappengine 中反转光标?
【发布时间】:2012-12-26 09:21:05
【问题描述】:

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    我不知道回答您自己的问题的政策是什么... 在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 中,并且获得反向光标应该很简单。

    【讨论】:

    • @doru 谢谢,我会尽快接受我的回答。我认为由于我目前的观点(?),我需要等待 2 天才能接受我自己的答案。
    猜你喜欢
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多