Paginator
: 블로그 객체를 잘라서 보내줌
<a href="?page=1>
/?page = pageinator.어떤페이지
장고에서 해주는 page 를 import 해야 함
blog/views.py 에서 from django.core.paginator import Paginator 추가
def home 에 다음 추가
paginator = Paginator(blogs, 3)
page = request.GET.get('page')
blogs = paginator.get_page(page)
⇒ 3개씩 보겠다
blogs/templates/home.html 의 endblock 위에 다음 코드 추가
{% if blogs.has_previous %}
<a href="?page=1">처음</a>
<a href="?page={{blogs.previous_page_number}}">이전</a>
{% endif %}
<span>{{blogs.number}}</span>
<span>of</span>
<span>{{blogs.paginator.num_pages}}</span>
{% if blogs.has_next %}
<a href="?page={{blogs.next_page_number}}">다음</a>
<a href="?page={{blogs.paginator.num_pages}}">마지막</a>
{% endif %}
HTML
복사
QuerySet Method
⇒ views.py
•
.all
•
.order_by('-pub_date) : 최신 글부터 보기 ... - 빼면 예전 글부터 보기
•
search = request.GET.get('search')
if search == 'true':
author = request.GET.get('writer')
blogs = Blog.objects.filter(writer=author) : 야매로 필터 기능 쓰기
return render(request, 'home.html', {'blogs':blogs})
⇒ home.html
•
h1 태그 앞에 <a href="?search=true&writer={{user.nickname}}">내가 쓴 글</a> 작성
•
.exclude : filter 대신 넣으면 해당 author 빼고 보여줌
→ .order_by('-pub_date) 붙일 수 있음