Pagination

Python
index.html
{% for app in apps %}    {{ app.title }}{% endfor %}
{% if apps.has_previous %}    <a href=”?p={{ apps.previous_page_number }}”>前へ</a> ①{% endif %}
<span>{{ apps.number }} / {{ apps.paginator.num_pages }}</span> ②
{% if apps.has_next %}    <a href=”?p={{ apps.next_page_number }}”>次へ</a> ③{% endif %}

①apps.previous_page_numberで前のページ番号を取得

②apps.paginator.num_pagesでページ数を取得

③apps.next_page_numberで次のページ番号を取得

views.py
from django.core.paginator import Paginator
def index(request): all_articles = App.objects.all() paginator = Paginator(all_articles, 10) p = request.GET.get(‘p’) ① apps = paginator.get_page(p) return render(request, ‘app/index.html’, {‘apps’:apps})

①request.GET.get(‘p’)はhttps://xxx.herokuapp.com/?p=3の3を取得

参考URL:[https://djangobrothers.com/blogs/django_pagination]

BACK