Django paginator 사용하기
아래 표는 코드잇 django 강의를 참고했다.
설명 | 예시 |
---|---|
{paginator}.count | paginator가 가지고 있는 데이터의 개수 |
{paginator}.num_pages | paginator가 가지고 있는 모든 페이지 수 |
{paginator}.page_range | paginator가 가지고 있는 페이지의 범위(range) |
{paginator}.page(1) | paginator가 가지고 있는 페이지 중 num번째 페이지 객체 |
{page}.has_next() | page객체가 다음 페이지가 있는지 여부 |
{page}.has_previous() | page객체가 이전 페이지가 있는지 여부 |
{page}.has_other_pages() | page객체가 다른 페이지를 가지고 있는지 여부 |
{page}.number | page객체의 현재 페이지 번호 |
{page}.object_list | page객체가 가지고 있는 데이터 목록 |
{page}.paginator | page객체의 Paginator |
{page}.next_page_number() | page객체의 다음 페이지 번호 |
{page}.previous_page_number() | page객체의 이전 페이지 번호 |
# view.py
from django.core.paginator import Paginator
posts = Post.objects.all()
paginator = Paginator(posts, 6) #6개 포스트당 한 페이지 객체생성
cur_page_number = request.GET.get('page') #query string 접근
pages = paginator.page(cur_page_number) #해당하는 페이지 가져오기
# template.py
{% for post in pages.object_list %} #object_list로 받아오기