我將這段代碼用於分頁,我希望用戶的選擇在整個站點中保持不變(迄今爲止已解決)......現在唯一的問題是會話變量現在是永久的,直到通過關閉瀏覽器清除會話。另外,我怎樣才能得到顯示的相鄰頁面......就像在digg風格的Django分頁器中一樣。我一直無法理解如何將其實現到我的代碼中。分頁問題
的代碼如下:
from django.core.paginator import Paginator, InvalidPage, EmptyPage
def paginate(request, object_list, paginate_by=10):
try:
if "per_page" in request.session:
per_page = request.session["per_page"]
else:
request.session["per_page"] = int(request.REQUEST['p'])
per_page = request.session["per_page"]
request.session.set_expiry(0)
except:
per_page = 10
paginator = Paginator(object_list, per_page)
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
try:
items = paginator.page(page)
except (EmptyPage, InvalidPage):
items = paginator.page(paginator.num_pages)
return items
然後在我的模板,我有這樣的呈現分頁鏈接:
<div class="pagination" align="center">
<span class="step-links">
{% if items.has_previous %}
<a href="?page={{ items.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ items.number }} of {{ items.paginator.num_pages }}
</span>
{% if items.has_next %}
<a href="?page={{ items.next_page_number }}">next</a>
{% endif %}
</span>
</div>
也這麼認爲......只是想知道,如果沒有任何其他手段 – Stephen 2009-11-27 09:13:40
我已經嘗試了上面的代碼,但是我必須得到錯誤的東西......現在分頁不起作用(除了第一頁)...我錯過了或遺漏了什麼 – Stephen 2009-11-27 13:00:26
我看不到你的代碼現在。如果您將問題標記爲未回答(點擊綠色勾號),並編輯您的問題以解釋您嘗試執行的操作,則可能會得到其他人的更多關注。 – Alasdair 2009-11-27 16:27:18