0

私のカスタムテンプレートでは、ページネーションが適用されています。ページに表示されるリストは、ページネーションを使用したよりもはるかに大きくなっています。リストを表示する制限は適切に機能していますが、次のボタンをクリックすると、else 条件になります。

ビュー.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 %} 
4

1 に答える 1

0

クリックNEXTするとGETリクエストされるため、elseセクションに進みます。

次のページの検索を続行するには、検索パラメーターをセッションに保存するか、URL を介して渡す必要があります。そして、それをfilter()クエリで使用します。

于 2013-10-03T06:20:25.100 に答える