on
[Python] Django의 Paginator로 쉽게 페이징 해주자
[Python] Django의 Paginator로 쉽게 페이징 해주자
# views.py from django.shortcuts import render from django.core.paginator import Paginator from rooms import models as room_models def all_rooms(requests): # page라는 query받고, query가 없을 경우 1 page = requests.GET.get("page", 1) """Paginator 써서 구현""" # 사용할 contents room_list = room_models.Room.objects.all() # paginator 설정 (contents_list, 10 == 페이지당 content 갯수) paginator = Paginator(room_list, 10) # n페이지(10개)에 해당하는 contents 가지고 오기 rooms = paginator.get_page(page) return render( requests, "rooms/home.html", { "rooms": rooms, }, )
{% extends 'base.html' %} {% block page_name%} Home {% endblock %} {% block content %} {% for room in rooms.object_list %} {{room.name}} / ${{room.price}} {% endfor %} # has_previous = Boolean {% if rooms.has_previous %} Previous {% endif %} Page {{rooms.number}} of {{rooms.paginator.num_pages}} # has_next = Boolean {% if rooms.has_next %} Next {% endif %} # page_range = range(1, 17) {% for page in rooms.paginator.page_range %} {{page}} {% endfor %} {% endblock %}
from http://insubkim.tistory.com/145 by ccl(A) rewrite - 2021-12-10 22:01:00