我在我的網站有一個分頁,但它顯示了我像1-19每一頁,我只想顯示只有5頁。 Django分頁器頁面範圍不顯示所有數字
我該怎麼做?
views.py
paginator = Paginator(object_list, new_number_of_list)
page = request.GET.get('page')
try:
Items = paginator.page(page)
except PageNotAnInteger:
Items = paginator.page(1)
except EmptyPage:
Items = paginator.page(paginator.num_pages)
variables = RequestContext(request, {"Items": Items,
"ForItemCount": ForItemCount,
"page": page,
})
return render(request, 'templates/Core/resource_base.html',
variables)
我pagination.html
<div class="pagination p1">
<span class="step-links">
<ul>
{% for l in Items.paginator.page_range %}
<li><a href="?page={{forloop.counter}}">{{forloop.counter}}</a></li>
{% endfor %}
</ul>
</span>
</div>
這是一個很好的解決方案順便說一句,但你的'link_name'工程錯誤。 此版本工作正確: '@ register.filter(名稱= 'LINK_NAME') DEF LINK_NAME(路徑,PAGE_NUMBER): URL =裏urlparse(路徑) QS = parse_qs(URL [4]) PAGE_NUMBER = STR( page_number) qs ['page'] = page_number return urlunparse((url [0],url [1],url [2],url [3],urlencode(qs),url [5])) ' –
謝謝@elfuego,你能告訴我什麼是失敗的,需要你添加額外的代碼,以及Django的版本是你在使用什麼?我將它部署在生產站點上,沒有遇到任何問題,但僅在1.11上進行了測試。 – LNI
實際的問題是,每當你點擊一個頁面鏈接,一個額外的'&page = X'被添加到鏈接,所以最終你會得到'...?page = X&page = Y ...'。 我的Django版本是2.0.1,我的Python版本是'3.6.2'。 –