我是一名学生,刚接触django。如何在详细类视图中添加分页?
这是我的views.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 %}
答案 0 :(得分:0)
您应该继承ListView而不是DetailView,并重写get_queryset以从合作伙伴那里获取讲座。如果需要,也可以在get_context_data中添加Partner对象。
答案 1 :(得分:0)
您的问题在模板{% if is_paginated %}
的第一行:您似乎没有将此变量传递到模板的上下文中。参见Paginator docs。
还有另一件事:generic.DetailView
中没有“包含分页”,您应该使用ListView。
休息时,您几乎已经钉上钉子。