私は、すべての収集データに改ページするのではなく、実際の改ページを行う必要があります。 Djangoドキュメンテーションサイトの例は次のようなものです。Django Pagination
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:
# If page is not an integer, deliver first page.
contacts = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
contacts = paginator.page(paginator.num_pages)
return render_to_response('list.html', {"contacts": contacts})
このコードは、記録されたすべてのレコードのページ番号を設定しています。しかし、問題があります。非常に多くのレコードがある場合、すべてのレコードを取得しようとすると多くの時間がかかります。データベースからページごとにレコードページを取得するソリューションが必要です。
Djangoでこれを行う別の解決方法はありますか?
この質問は前に回答されている、ここを参照してください:
Paginator
クラスで、
QuerySet
はあなたがpaginator.page(page)
を呼び出すと、文が呼ばれ、そのコンストラクタに渡されます http://stackoverflow.com/questions/10548744/django-lazy-queryset-and-pagination –