首页 > 解决方案 > Django - 如何在详细视图中添加分页

问题描述

我是一名学生,也是 django 的新手。如何在详细类视图中添加分页?

这是我的意见.py

class AuthorDetailView(NeverCacheMixin, generic.DetailView):
model = Author
paginate_by = 1

和我使用的分页代码,它不起作用。

{% if is_paginated %}

          {% if page_obj.has_previous %}
            <a class="btn btn-outline-dark mb-4" href="?page={{ page_obj.previous_page_number }}">Previous</a>
          {% endif %}

          {% for num in page_obj.paginator.page_range %}
            {% if page_obj.number == num %}
              <a class="btn btn-dark mb-4" href="?page={{ num }}">{{ num }}</a>
            {% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %}
              <a class="btn btn-outline-dark mb-4" href="?page={{ num }}">{{ num }}</a>
            {% endif %}
          {% endfor %}

          {% if page_obj.has_next %}
            <a class="btn btn-outline-dark mb-4" href="?page={{ page_obj.next_page_number }}">Next</a>
          {% endif %}

            {% endif %}

标签: djangopaginationdjango-views

解决方案


您应该继承 ListView 而不是 DetailView,并重写 get_queryset 以从合作伙伴那里获取讲座。如果需要,您也可以在 get_context_data 中添加 Partner 对象。


推荐阅读