该页面不包含Django ListView的结果

时间:2016-02-22 17:08:10

标签: django

我在Django 1.9中遇到了问题 当我转到最后的结果分页时,我遇到了这个问题

views.py

 class UserList(ListView):
     model = User
     template_name = 'account/users.html'
     paginate_by = 1

users.html

<div class="pagination">
<span class="page-links">
    {% if page_obj.has_previous %}
        <a href="?page={{ page_obj.previous_page_number }}">previous</a>
    {% endif %}
    <span class="page-current">
        Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.
    </span>
    {% if page_obj.has_next %}
        <a href="?page={{ page_obj.next_page_number }}">next</a>
    {% endif %}
</span>

1 个答案:

答案 0 :(得分:0)

我也遇到过这个问题,问题是Paginator.page_range是从1开始的。

https://docs.djangoproject.com/en/1.9/topics/pagination/#django.core.paginator.Paginator.page_range

我使用了以下解决方案:(我使用的是基础6)

{% if is_paginated %}
  <ul class="pagination text-center" role="navigation" aria-label="Pagination">

    {% if page_obj.has_previous %}
    <li class="pagination-previous">
      <a href="?page={{ page_obj.previous_page_number }}">
        <span>Previous</span>
      </a>
    </li>
    {% else %}
    <li class="pagination-previous disabled">
        <span>Previous</span>
    </li>
    {% endif %}

    {% for page in paginator.page_range %}
      {% if paginator.num_pages != page %}
      <li class="{% if page == page_obj.number %}active{% endif %}">
        <a href="?page={{ page }}">{{ page }}</a>
      </li>
      {% endif %}
    {% endfor %}

    {% if page_obj.has_next and paginator.num_pages != page_obj.next_page_number %}
    <li class="pagination-next">
      <a href="?page={{ page_obj.next_page_number }}">
        <span>Next</span>
      </a>
    </li>
    {% else %}
    <li class="pagination-next disabled">
        <span>Next</span>
    </li>
    {% endif %}
  </ul>
{% endif %}

希望这有帮助!我最初基于https://ana-balica.github.io/2015/01/29/pagination-in-django/

编写代码