- 導(dǎo)入django內(nèi)置的分頁(yè)器
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
- 定義一個(gè)分頁(yè)器函數(shù)
def make_paginator(objects, page, num=1):
paginator = Paginator(objects, num)
try:
object_list = paginator.page(page)
except PageNotAnInteger:
object_list = paginator.page(1)
except EmptyPage:
object_list = paginator.page(paginator.num_pages)
return object_list, paginator
- 在index中將文章總數(shù)和當(dāng)前訪問(wèn)頁(yè)碼傳入分頁(yè)器函數(shù)
def index(request):
entries = models.Entry.objects.all()
page = request.GET.get('page', 1)
entry_list, paginator = make_paginator(entries, page)
page_data = pagination_data(paginator, page)
return render(request, 'blog/index.html', locals())
{% if entry_list.has_previous %}
<li><a href="?page={{ entry_list.previous_page_number }}"><i class="glyphicon glyphicon-chevron-left"></i>前一頁(yè)</a></li>
{% endif %}
{% if first %}
<li><a href="?page=1">1</a></li>
{% endif %}
{% if left %}
{% if left_has_more %}
<span>...</span>
{% endif %}
{% for i in left %}
<li><a href="?page={{ i }}">{{ i }}</a></li>
{% endfor %}
{% endif %}
<li class="active"><a href="?page={{ entry_list.number }}">{{ entry_list.number }}</a></li>
{% if right %}
{% for i in right %}
<li><a href="?page={{ i }}">{{ i }}</a></li>
{% endfor %}
{% if right_has_more %}
<span>...</span>
{% endif %}
{% endif %}
{% if last %}
<li><a href="?page={{ entry_list.num_pages }}">{{ entry_list.num_pages }}</a></li>
{% endif %}
{% if entry_list.has_next %}
<li><a href="?page={{ entry_list.next_page_number }}">下一頁(yè)<i class="glyphicon glyphicon-chevron-right"></i></a></li>
{% endif %}
</ul>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。