페이징 소스 공유합니다.
272
작성한 질문수 3
페이징 구현이 부족한듯하여 제가 만든 소스를 공유해봅니다.
#views.py
from django.shortcuts import render
from third.models import Restaurant
from django.core.paginator import Paginator
import math
from third.forms import RestaurantForm
from django.http import HttpResponseRedirect
# Create your views here.
def list(request):
restaurants = Restaurant.objects.all()
pagenator = Paginator(restaurants, 5)
page = request.GET.get('page')
if page is None:
page = 1
# 시작페이지 끝페이지 구하기
page_F = float(page)
if page_F <= 10:
beginPage = 1
else:
beginPage = (math.trunc(page_F / 10)) * 10 + 1
if (beginPage + 10) > pagenator.num_pages:
lastPage = pagenator.num_pages
else:
lastPage = beginPage + 9
nextRangeStartPage = lastPage + 1
pageRange = []
for num in range(beginPage, lastPage+1):
pageRange.append(num)
items = pagenator.get_page(page)
context = {
'restaurants': items,
'lastPage': lastPage,
'pageRange': pageRange,
'nextRangeStartPage': nextRangeStartPage,
}
return render(request, 'third/list.html', context)
#list.html
{% extends 'third/base.html' %}
{% load static %}
{% block content %}
<div class="container">
{% for item in restaurants %}
<div class="row restaurant-item" style="margin:20px auto;">
<div class="col-sm-12">
<div class="card border-secondary">
<div class="card-body">
<h5 class="card-title">{{ item.name }}</h5>
<p class="card-subtitle mb-2 text-muted">{{ item.address }}</p>
<p class="card-text">음식점 설명</p>
<a href="#" class="card-link">자세히 보기</a>
<a href="#" class="card-link">수정하기</a>
</div>
</div>
</div>
</div>
{% endfor %}
<div class="row">
<div class="col-sm-12 text-center">
<div class="pagination">
<spen class="step-links text-center" style="width:100%;">
{% if restaurants.has_previous %}
<a href="?page=1">«</a>
{% endif %}
{% for pageNum in pageRange %}
{% if restaurants.number == pageNum %}
<spen class="current">
{{ restaurants.number }}
</spen>
{% else %}
<a href="?page={{ pageNum }}">{{ pageNum }}</a>
{% endif %}
{% endfor %}
{% if restaurants.paginator.num_pages > lastPage %}
<a href="?page={{ nextRangeStartPage }}">»</a>
{% endif %}
</spen>
</div>
</div>
</div>
</div>
{% endblock %}
답변 1
빨간 줄이 뜨네요
0
137
1
import 문장에 빨간줄이 뜹니다.
0
156
1
putty 관련 질문
0
192
1
uWSGI 세팅하기_ 최종 502 bad gateway error
0
809
1
putty 접속관련
0
305
1
[리뷰 삭제하기] 삭제시 path 에러문구나옴.
0
386
1
데이터 새성시 forms.py, models.py 관련문의
0
308
1
'폼으로 데이터 전송하기' 강의 소리가 갑자기 작아짐
0
318
1
[스태틱]index.html 의 이미지를 변경하려면 ?
0
508
1
WARNINGS: ?: (staticfiles.W004) The directory 'C:\projects\first-django\static' in the STATICFILES_DIRS setting does not exist.
0
427
1
사진 넣고 엑박...ㅜㅜ
0
335
0
간단한 웹 페이지 띄우기 강의 10분 후반쯤
0
419
0
리뷰 등록 구현하기 4:26 url 오류
0
347
1
create.html
0
361
1
502 badgateway 오류가 떠요
0
284
0
putty에서 막혔네요 ㅠㅠ
0
355
2
django) 한 폼에 여러 모델 데이터 입력하는 경우
0
328
0
파이참 안에서 가상환경 접속이 안 됩니다.
0
691
1
settings.py
0
305
1
만약 웹앱을 업데이트할경우는 어떻게 해야하나요?
0
374
1
CSS 가운데 정렬 적용 안됨
0
4833
3
NameError: name 'os' is not defined
2
1107
1
1분 26초에 post=Post.objects.create(title="this is title", content="this is content")부분이 실행이 안됩니다.
0
267
1
virtualenv가 설치가 안됩니다..
0
439
1





