Iamは私のWebページでページ付けを使用しようとしています。だから私はここのdjangoドキュメントで例を見つけました 。
from django.core.paginator import Paginator, InvalidPage, EmptyPage
def listing(request):
contact_list = Contacts.objects.all()
paginator = Paginator(contact_list, 25) # Show 25 contacts per page
# Make sure page request is an int. If not, deliver first page.
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
# If page request (9999) is out of range, deliver last page of results.
try:
contacts = paginator.page(page)
except (EmptyPage, InvalidPage):
contacts = paginator.page(paginator.num_pages)
return render_to_response('list.html', {"contacts": contacts})
この例の問題は、ページ付けするためにすべてのアイテムを一度にロードしていることです。しかし、私のデータベースには20000
エントリがあり、それらすべてを一度にロードすることはできません。では、クエリを最適化する方法はありますか?