如何解决django 分页器不工作,但链接手动工作
我有一个页面,它代表基于类别的文章。我正在尝试为此页面制作分页器,但在我的网页中看不到分页器。但是,当我手动输入链接时,它可以工作。我不知道我在这里错过了什么...... #我的 HTML 页面
<div class="blog-pagination">
<ul class="justify-content-center">
{% if cat_articles.has_prevIoUs %}
<li><a
href="{% url 'website:category' cat_articles.prevIoUs_page_number %}">
<i class="icofont-rounded-left"
></i></a></li>
{% endif %}
<li><a href="#">1</a></li>
<li class="#"><a href="#">2</a></li>
<li><a href="#">3</a></li>
{% if cat_articles.has_next %}
<li><a href="{% url 'website:category' cat_articles.next_page_number %}">
<i class="icofont-rounded-right"
></i></a></li>
{% endif %}
</ul>
</div>
</div><!-- End blog entries list -->
#我的观点
def category(request,slug,page=1):
cat = get_object_or_404(Category,slug=slug,status=True)
articles_cat = cat.articles.filter(status='Published')
paginator_cat = Paginator(articles_cat,1)
cat_articles = paginator_cat.get_page(page)
context = {
"category": cat_articles
}
return render(request,'website/category.html',context)
解决方法
@Amin Etemadi - 我的建议是使用 ListView。它提供了一种通过添加诸如 paginate_by=10
之类的内容来添加分页的简单方法。而已。如果您需要获取基于特定类别的文章,那么只需覆盖 ListView 的 get_queryset()
并将您的逻辑放在那里,就是这样。在模板中你可以做这样的事情
{% if is_paginated %}
<div class="pagination">
<ul >
{% if page_obj.has_previous %}
<li class="page-item">
<a class="page-link" href="?page={{ page_obj.previous_page_number }}"
aria-label="Previous">
<span aria-hidden="true">«</span>
<span class="sr-only">Previous</span>
</a>
</li>
{% endif %}
<li class="page-item active">
<a class="page-link" href="?page={{ page_obj.number }}">{{ page_obj.number }}
<span class="sr-only">(current)</span>
</a>
</li>
{% if page_obj.has_next %}
<li class="page-item">
<a class="page-link" href="?page={{ page_obj.next_page_number }}"
aria-label="Next">
<span aria-hidden="true">»</span>
<span class="sr-only">Next</span>
</a>
</li>
{% endif %}
</ul>
</div>
{% endif %}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。