Paginator不起作用。我写了views.py
checkPermission()
top.html中的
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
当我访问top.html时,所有项目都显示在浏览器中。我想我写了一个项目显示在这个部分页面= paginator.page(page_no)的一个页面(浏览器)中,但没有错误发生所以我真的无法理解有什么问题。我该如何解决这个问题?
答案 0 :(得分:1)
问题在于你的for循环 - {% for i in item %}
。您正在遍历item
对象。而您需要遍历page
对象,例如 - {% for i in page %}
答案 1 :(得分:0)
您的视图会将item
设置为存储在POST
模型中的所有对象,并将它们传递给模板。然后模板遍历item
列表,因此将显示所有没有分页的对象。
page
是一个对象页面,这就是您的模板应该迭代的内容。
此外,似乎没有理由将item
(即所有POST
个对象)传递给模板,因为它未被使用。可能最好将其删除。