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

Django模板url传参报错:id期望数字却得到{{ navbarList.0.id }}如何解决

报错触发原因

该错误是Django模板语法使用错误导致的:

  • Django模板的{% %}标签块内部引用变量时,不需要额外加{{ }}包裹,也不需要用引号包裹变量名。你在url标签中将category参数的值写为"{navbarList.0.id }",会被Django识别为普通字符串常量,而非变量取值。
  • 最终渲染出的链接地址直接把{{ navbarList.0.id }}作为路径参数传入后端,视图接收的分类ID是字符串而非数字,触发模型字段的类型校验报错。

修复方案

直接删除url标签内变量外层的引号和多余的大括号即可,修正后的模板代码如下:

<a href='{% url "category" category=navbarList.0.id %}'>
  {{ navbarList.0.category }}
</a>
<a href='{% url "category" category=navbarList.1.id %}'>
  {{ navbarList.1.category }}
</a>

可选优化

如果不能保证navbarList一定存在至少2条数据,可在外层增加长度判断,避免索引越界报错:

{% if navbarList|length >= 2 %}
<a href='{% url "category" category=navbarList.0.id %}'>
  {{ navbarList.0.category }}
</a>
<a href='{% url "category" category=navbarList.1.id %}'>
  {{ navbarList.1.category }}
</a>
{% endif %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:24:07