Django では、次のようにページネーターを使用します。
django.core.paginator からインポート Paginator、EmptyPage、PageNotAnInteger
def myView(request):
...
paginator = Paginator(Annonce.objects.filter(name="huhu"), 10)
paginator._count = s.count()
try:
annonces = paginator.page(page)
except PageNotAnInteger:
annonces = paginator.page(1)
except EmptyPage:
annonces = paginator.page(paginator.num_pages)
s.search() 関数で、postgres db に対してクエリを実行します。
1 ページあたり 10 アイテムを表示しても、クエリは制限されないことがわかりました。
クエリを a で制限しAnnonce.objects.filter(name="huhu")[:10]
、カウントを自分で指定しようとしました。しかし、そうするとページネーターが機能しません。
これを最適化する方法はありますか?