## pagination 구현
(https://docs.djangoproject.com/en/1.10/topics/pagination/#django.core.paginator.Paginator)
```
from django.core.pagination import Paginator
p = Paginator(posts, 5) # 이런식으로 사용
```
- views/list.py를 수정해줘야함
```
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
# EmptyPage: 페이지가 범위를 넘어서면 (없는페이지인지)
# PageNotAnInteger: page parameter에 int가 아닌 타입이 들어오면
...
p = Paginator(posts, 5)
page = request.GET.get("page")
try:
posts = p.page(page)
except PageNotAnInteger:
posts = p.page(1)
except EmptyPage:
posts = p.page(p.num_pages)
...
```
- list templates 수정해주기 (페이지 표시)
```
<div class="pagination">
<span class="step-links">
{% if posts.has_previous %}
<a href="?page={{ posts.previous_page_number }}"> previous </a>
{% endif %}
<span class="current">
Page {{ posts.number }} of {{ posts.paginator.num_pages }}.
</span>
... # next도 previous와 똑같이 구현
</span>
</div>
```
'backend > django' 카테고리의 다른 글
장고에서 세션, 쿠키, 캐시에 대해서... (0) | 2017.04.16 |
---|---|
django 소셜 로그인 기능 구현 (facebook) (0) | 2017.04.14 |
각종 장고 에러코드 정리 (1.10 에러) (0) | 2017.03.25 |
각종 장고 에러코드 정리 (Django 1.10 에러) (0) | 2017.03.23 |
장고스터디 블로그 만들기- github 초기 세팅과 연동 (0) | 2017.03.20 |