2017-01-20 7 views
0

Django ListViewでページ番号をリセットする方法。Djangoでページ番号をリセットする方法ListView

フィルタ形式のビューがあり、結果にページが表示されます。

例: 最初のリクエストは50ページを返し、40ページになります。その後、フィルタを変更すると、結果はわずか10ページです。 URLにはページ番号40があります。結果はわずか10ページなので404ページになります。

「POST」中に最初のページにリダイレクトする必要があります。リストビューでそれを作るためにどのよう

ジャンゴの
+0

チュートリアルは、あなたの友人:) [チュートリアル](https://docs.djangoproject.com/en/1.10/topics/pagination/#using-paginator-in-aです-view)。ページが範囲外の場合、結果の最後のページを配信します。このコードを更新して、最初のページに戻ることができます。私の答えを見てください。 – Wilfried

答えて

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}) 
関連する問題