分页器不起作用。我写了 views.py
from .models import POST
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.shortcuts import render
def top(request):
item = POST.objects.order_by('-created_at')
page = _get_page(item, request.GET.get('page'))
return render(request, 'top.html',{'item':item,"page":page})
def _get_page(list_, page_no, count=1):
paginator = Paginator(list_, count)
try:
page = paginator.page(page_no)
except (EmptyPage, PageNotAnInteger):
page = paginator.page(1)
return page
在顶部.html
<div>
{% for i in item %}
<div>
<h2>{{ i.title }}</h2>
<p>{{ i.index }}</p>
</div>
{% endfor %}
</div>
<div>
{% if page.has_previous %}
<a href="?page={{ page.previous_page_number }}">Previous</a>
{% endif %}
{% for num in page.paginator.page_range %}
{% if page.number == num %}
<span>{{ num }}</span>
{% else %}
<a href="?page={{ num }}">{{ num }}</a>
{% endif %}
{% endfor %}
{% if page.has_next %}
<a href="?page={{ page.next_page_number }}">Next</a>
{% endif %}
</div>
当我访问 top.html 时,所有项目都显示在浏览器中。我想我在这部分 page = paginator.page(page_no) 中写了一个项目显示在一页(浏览器)中,但没有发生错误,所以我真的不明白是什么是错的。我应该如何解决这个问题?
问题出在您的 for 循环 - 中{% for i in item %}
。你在item
对象上循环。而你需要page
像这样循环对象 -{% for i in page %}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句