分页器不起作用

用户7676799

分页器不起作用。我写了 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) 中写了一个项目显示在一页(浏览器)中,但没有发生错误,所以我真的不明白是什么是错的。我应该如何解决这个问题?

xyres

问题出在您的 for 循环 - 中{% for i in item %}你在item对象上循环而你需要page像这样循环对象 -{% for i in page %}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章