장고 - Page 기능 학습
함수형 뷰에서 paginator 없이 page 기능 구현
- 경로 : board_project > board > views.py
1 | from django.shortcuts import render |
- 경로 : board_project > board > templates > board > document_list.html
1 | {% extends 'base.html' %} |
클래스형 뷰에서 paginator로 page 기능 구현
- 경로 : wps_blog > post > views.py
1 | from django.views.generic.list import ListView |
- 경로 : wps_blog > post > templates > post > post_list.html
1 | {% extends 'base.html' %} |
Paginator 학습
Paginator 란?
- 리스트형 뷰에서 페이징 기능은 필수이다.
- 직접 페이징 기능 구현은 가능하지만, 쉽게 페이징 기능을 구현해주는 모듈이 Paginator이다.
Paginator 기초
모델 페이징하기
1
from django.core.paginator import Paginator
전체 객체 수
1
paginator.count
페이지 수
1
paginator.num_pages
페이지 범위
1
paginator.page_range
원하는 페이지 얻기
1
page = paginator.page(1)
페이지에 속한 객체 목록
1
page.object_list
다음 페이지 여부
1
page.has_next()
이전 페이지 여부
1
page.has_previous()
다음 페이지 번호
1
page.next_page_number()
이전 페이지 번호
1
page.previous_page_number()
다른 페이지 존재 여부
1
page.has_other_pages()
해당 페이지 객체 인덱스
1
2page.start_index()
page.end_index()리스트에 페이지 출력
1
2
3{% for page_num in paginator.page_range %}
<a href="?page={{page_num}}">{{page_num}}</a>
{% endfor %}
Posted