You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决Django省略分页的PageNotAnInteger错误或禁用省略号链接

Django 省略式分页:禁用省略号链接解决点击报错问题

你已经通过Paginator.get_elided_page_range实现了1,2,3...8,9,10形式的省略分页,但点击分页中的...时会触发PageNotAnInteger错误——原因是省略号并非有效页码,却被渲染成了可点击的链接。解决方法很简单,在模板中区分页码和省略号,不为省略号生成链接即可:

修改后的 authors.html 代码

<!-- 作者列表部分 -->
{% for author in authors %}
  <p>{{ author }}</p>
{% endfor %}

<!-- 分页部分 -->
{% for i in elided_data %}
  {% if i == "..." %}
    <span>{{ i }}</span>
  {% else %}
    <a href="?page={{ i }}">{{ i }}</a>
  {% endif %}
{% endfor %}

原理说明

get_elided_page_range返回的迭代器中,实际页码是整数类型,而省略号是字符串类型的"..."。通过模板中的条件判断,我们只为整数页码生成可点击的链接,省略号则用普通文本(或<span>标签)展示,这样就避免了点击省略号触发无效请求的问题。

内容的提问来源于stack exchange,提问作者Bashar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 20:55:20