2013-01-11 43 views
1

我正在開發和應用程序需要分頁鏈接列表。我用djangoappengine使用django non-rel。如何在djangoappengine中反轉光標?

我知道的功能set_cursor和get_cursor在djangoappengine.db.utils它可以很容易地向前導航這樣的發現:

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。這使用了作爲Cursor類的一部分的reversed()函數,我不確定在Django中可以訪問它。

但是,如何在djangoappengie中反轉光標?

如果不可能,我相信另一種方法是存儲遊標客戶端,通過ajax傳遞它們,然後根據頁碼生成查詢。儘管如此,我寧願儘可能遵循官方程序。

感謝

回答

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中並獲得一個反轉的遊標應該很簡單。

+0

如果這是你的問題的答案,你應該接受它。 – doru

+0

@doru謝謝,我會盡快接受我的回答。我認爲,由於我目前的觀點(?),我需要等待2天才能接受我自己的答案。 –