Django博客分类页Paginator无法限制每页6篇文章问题求助
Django分类页面分页失效问题解决
你的分页功能失效的核心原因是:模板中直接遍历了未经过分页处理的posts查询集,而非视图中生成的分页对象category_page。
修复步骤:
- 修改category_detail.html的文章循环逻辑
将模板里的{% for post in posts %}替换为{% for post in category_page %}。category_page是Django Paginator返回的分页对象,它已经包含了当前页应展示的6篇文章数据。
修改后的代码片段:
{% for post in category_page %} <article class="col-lg-10"> <div class="background-white"> <div class="post-thumb"> <a href="{{ post.get_absolute_url }}"> <img class="border-radius" src="{{ post.image.standard.url }}" alt=""> </a> </div> <div class="pl-10"> <div class="mb-15"> <a class="meta-2" href="{{ post.category.get_absolute_url }}"><span class="post-in">{{ post.category}}</span></a> </div> <h5 class="mb-15"> <a href="{{ post.get_absolute_url }}">{{ post.post_title }}</a></h5> <p class="mb-30">{{ post.body | slice:":200" | safe }}</p> <div class="mb-10"> <span class="post-on">{{ post.created_at}}</span> </div> </div> </div> </article> {% endfor %} {% include "include/pagination.html" %}
- 可选优化:清理冗余上下文变量
视图中posts变量已无实际作用,可从上下文字典中移除,避免后续混淆:
context = {'category': category, 'categories': categories, 'category_page': category_page}
完成上述修改后,分页功能即可正常工作,每页将仅展示6篇文章,点击分页按钮也会正确切换对应页面的内容。
内容的提问来源于stack exchange,提问作者Firefoxer
相关产品推荐
相关产品推荐

