如何在Django ListView中重置页码。
有一个带过滤器形式的视图,结果是分页的。
例如: 第一个请求返回50页,我们来到40页。然后我们改变过滤器,结果只有10页。在网址中我们有第40页。我们得到404页,因为结果只有10页。
似乎我必须在' POST'时重定向到第一页。如何在ListView中制作它
答案 0 :(得分:0)
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})