分页不适用于django

时间:2013-10-03 05:56:32

标签: python django error-handling pagination

在我的自定义模板中,将对其应用分页。在页面上显示的列表比我在其上使用的分页要大得多。显示列表的限制是正确的,但是当我点击下一个按钮而不是其他条件时。

views.py: -

@csrf_exempt
def search(request):
    if request.method == 'POST':
        getchoice = request.POST['userchoice']
        getfirstdate = request.POST['firstdate']
        getseconddate = request.POST['seconddate']


        if getchoice == '0':
            getdata = applicationform.objects.filter(date__gte=getfirstdate , date__lte=getseconddate)
            ##### PAGINATION
            searchpagination = Paginator(getdata ,5)
            page = request.GET.get('searchpage')
            try:
                searchcontacts = searchpagination.page(page)
            except PageNotAnInteger:
                searchcontacts = searchpagination.page(1)
            except EmptyPage:
                searchcontacts = searchpagination.page(searchpagination.num_pages)  

            if getdata:
                return render_to_response('registration/search_page.html', {'getdata':getdata ,'getchoice':getchoice ,'searchcontacts': searchcontacts})    
            else:
                return HttpResponse('NO ITEMS FOUND ON THIS DATE')
    else :  
            return render_to_response('registration/search_page.html')

自定义模板: -

{% if searchcontacts.has_previous %}
<a href="?searchpage={{ searchcontacts.previous_page_number }}">PREVIOUS</a>
{% endif %}
{% if searchcontacts.has_next %}    
<a href="?searchpage={{ searchcontacts.next_page_number }}">NEXT</a>
{% endif %} 

1 个答案:

答案 0 :(得分:0)

点击NEXTGET请求,因此它会进入else部分。

要继续搜索下一页,您需要在会话中存储搜索参数或通过url传递它。然后在filter()查询中使用它。