# 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,
},
)
# home.html
{% extends 'base.html' %}
{% block page_name%}
Home
{% endblock %}
{% block content %}
{% for room in rooms.object_list %}
<h1>{{room.name}} / ${{room.price}}</h1>
{% endfor %}
<h5>
# has_previous = Boolean
{% if rooms.has_previous %}
<a href="/?page={{rooms.previous_page_number}}">Previous</a>
{% endif %}
Page {{rooms.number}} of {{rooms.paginator.num_pages}}
# has_next = Boolean
{% if rooms.has_next %}
<a href="/?page={{rooms.next_page_number}}">Next</a>
{% endif %}
# page_range = range(1, 17)
{% for page in rooms.paginator.page_range %}
{{page}}
{% endfor %}
</h5>
{% endblock %}