Paginator不起作用

时间:2018-01-01 09:05:53

标签: python django pagination

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)的一个页面(浏览器)中,但没有错误发生所以我真的无法理解有什么问题。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

问题在于你的for循环 - {% for i in item %}。您正在遍历item对象。而您需要遍历page对象,例如 - {% for i in page %}

答案 1 :(得分:0)

您的视图会将item设置为存储在POST模型中的所有对象,并将它们传递给模板。然后模板遍历item列表,因此将显示所有没有分页的对象。

page是一个对象页面,这就是您的模板应该迭代的内容。

此外,似乎没有理由将item(即所有POST个对象)传递给模板,因为它未被使用。可能最好将其删除。