Django- 페이지 나누기
django 내장된 페이지
Paginator 객체
페이지 객체
예제
from django.core.paginator import Paginator
def students(request, num):
allStudents = Student.objects.all()
# 6
paginator = Paginator(allStudents, 6)
print(paginator.count, paginator.num_pages, paginator.page_range)
pageStus = paginator.page(num)
return render(request, "students.html", {"stus":pageStus})
{% for stu in stus %}
- {{ stu.name }}--{{ stu.grade }}--{{ stu.age }}
{% endfor %}
{% if stus.has_previous %}
이전 페이지
{% endif %}
{% for index in stus.paginator.page_range %}
{% if index == stus.number %}
{{ index }}
{% else %}
{{ index }}
{% endif %}
{% endfor %}
{% if stus.has_next %}
다음 페이지
{% endif %}
페이지 나누기
소재지
(1) 설치
pip install django-pure-pagination
(2)settings에 추가
INSTALLED_APPS = (
...
'pure_pagination',
)
(3)views에서 사용하는 방법
class OrgView(View):
''' '''
def get(self, request):
#
all_orgs = CourseOrg.objects.all()
#
org_nums = all_orgs.count()
#
all_citys = CityDict.objects.all()
#
# get page
#
try:
page = request.GET.get('page', 1)
except PageNotAnInteger:
page = 1
# allorg , 5
p = Paginator(all_orgs, 5, request=request)
orgs = p.page(page)
return render(request, "org-list.html", {
"all_orgs": orgs,
"all_citys": all_citys,
"org_nums": org_nums,
})
(4) 템플릿 수정
#{%for course_org in all_orgs%}
{%for course_org in all_orgs.object_list%}
...
{%endfor%}
(5) 페이지 나누기 기능
{% if all_orgs.has_previous %}
- 이전 페이지
{% endif %}
{% for page in all_orgs.pages %}
{% if page %}
{% ifequal page all_orgs.number %}
- {{ page }}
{% else %}
- {{ page }}
{% endifequal %}
{% else %}
- ...
{% endif %}
{% endfor %}
{% if all_orgs.has_next %}
- 다음 페이지
{% endif %}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.