0
如何在Django ListView中重置頁碼。如何在Django ListView中重置頁碼
有一個篩選窗體視圖,結果分頁。
例如: 首先請求返回50頁,我們來到40頁。然後我們改變過濾器,結果只有10頁。在url中,我們有頁碼40.我們得到404頁面,因爲結果只有10頁。
似乎我'POST'時必須重定向到第一頁。如何使它在ListView控件
如何在Django ListView中重置頁碼。如何在Django ListView中重置頁碼
有一個篩選窗體視圖,結果分頁。
例如: 首先請求返回50頁,我們來到40頁。然後我們改變過濾器,結果只有10頁。在url中,我們有頁碼40.我們得到404頁面,因爲結果只有10頁。
似乎我'POST'時必須重定向到第一頁。如何使它在ListView控件
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.shortcuts import render
def listing(request):
contact_list = Contacts.objects.all()
paginator = Paginator(contact_list, 25) # Show 25 contacts per page
page = request.GET.get('page')
try:
contacts = paginator.page(page)
except (PageNotAnInteger, EmptyPage):
# If page is not an integer or out of range, deliver first page.
contacts = paginator.page(1)
return render(request, 'list.html', {'contacts': contacts})
教程的Django的是你的朋友:) [教程](https://docs.djangoproject.com/en/1.10/topics/pagination/#using-paginator-in-a -視圖)。如果頁面超出範圍,請提供結果的最後一頁。您可以更新此代碼以返回到第一頁,請參閱我的答案。 – Wilfried