【问题标题】:Django pagination not showing using class base viewDjango分页未使用类基础视图显示
【发布时间】:2022-01-03 07:16:52
【问题描述】:

您好,正在寻找解决方案,但没有解决我的问题,我不知道为什么,但它没有在 html 文件中显示分页数。这是结构代码:

class ListEmployeeActivity(ListView, LoginRequiredMixin):
    paginate_by = 1
    model = EmployeePersonalDetailsModel
    template_name = 'layout/employee_list_layout.html'
    context_object_name = 'datalist'

    def get_queryset(self):
        return self.model.objects.prefetch_related('ecdm_fk_rn').all()

html 文件:

{% if is_paginated %}
                <div class="pagination pagination-centered">
                    <ul>
                        {% if datalist.has_previous %}
                        <li><a href="?page={{ datalist.previous_page_number }}"><i class="icon-double-angle-left"></i></a></li>
                        {% endif %}

                        {% for total_pages in datalist.paginator.page_range %}
                        <li><a href="?page={{ total_pages }}">1</a></li>
                        {% endfor %}
                        
                        {% if datalist.has_next %}
                        <li><a href="?page={{ datalist.next_page_number }}"><i class="icon-double-angle-right"></i></a></li>
                        <li><a href="?page={{ datalist.paginator.num_pages }}">Last</a></li>
                        {% endif %}
                    </ul>
                </div>
                {% else %}
                <h3>Pagination not working.</h3>
                {% endif %}

【问题讨论】:

  • 你得到了什么? Pagination not working.?还是别的什么?
  • @YuriNudelman 没有显示好友,我有 4 个数据,但我按 1 分页以便我可以看到它。当我在is_paginated 中放一些东西时,它会显示,但是那里的那些条件语句不起作用。

标签: django django-pagination


【解决方案1】:
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

class UserListView(ListView):
    model = User
    template_name = 'core/user_list.html'
    context_object_name = 'users' 
    paginate_by = 10
    queryset = User.objects.all()

HTML 文件。

<table class="table table-bordered">
  <thead>
    <tr>
      <th>Username</th>
      <th>First name</th>
      <th>Email</th>
    </tr>
  </thead>
  <tbody>
    {% for user in users %}
      <tr>
        <td>{{ user.username }}</td>
        <td>{{ user.first_name }}</td>
        <td>{{ user.email }}</td>
      </tr>
    {% endfor %}
  </tbody>
</table>

{% if is_paginated %}
  <ul class="pagination">
    {% if page_obj.has_previous %}
      <li><a href="?page={{ page_obj.previous_page_number }}">&laquo;</a></li>
    {% else %}
      <li class="disabled"><span>&laquo;</span></li>
    {% endif %}
    {% for i in paginator.page_range %}
      {% if page_obj.number == i %}
        <li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
      {% else %}
        <li><a href="?page={{ i }}">{{ i }}</a></li>
      {% endif %}
    {% endfor %}
    {% if page_obj.has_next %}
      <li><a href="?page={{ page_obj.next_page_number }}">&raquo;</a></li>
    {% else %}
      <li class="disabled"><span>&raquo;</span></li>
    {% endif %}
  </ul>
{% endif %}

user this for refernace

【讨论】:

  • 嘿!这很奇怪! page_objpagination 在类基础视图中的默认值吗?
  • 你可以使用它。我也使用这是一个简单而好方法。供参考simpleisbetterthancomplex.com/tutorial/2016/08/03/…
  • 我是什么意思,为什么它不能在它自己的对象上工作?那么我不知道它必须使用page_obj 变量是在类基础视图中使用分页时的默认设置吗?它实际上有效,我只是困惑为什么会这样。
  • 好的,我明白了!!
猜你喜欢
  • 1970-01-01
  • 2017-05-08
  • 2014-10-12
  • 1970-01-01
  • 2020-09-17
  • 2019-06-20
  • 2021-07-04
  • 1970-01-01
  • 2019-09-24
相关资源
最近更新 更多