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

Django模板中for循环传递变量至href URL参数失效问题

问题解决:Django模板for循环生成的URL链接无效

你的问题出在模板中{% url %}标签的写法上:在for循环里,你错误地用'{{person}}'作为参数传递给url标签,这会让Django将{{person}}当作字符串字面量处理,而不是解析模板变量person的值,最终生成的URL是错误的(比如会变成/person/{{person}}/,而不是预期的/person/logan/)。

修正后的模板代码

<h2>works now</h2>
{% for person in people %}
    <a href="{% url 'person' person %}">{{person}}</a>
{% endfor %}

<h2>works</h2>
<a href="{% url 'person' 'logan' %}">logan</a>
<a href="{% url 'person' 'paul' %}">paul</a>
<a href="{% url 'person' 'nicola' %}">nicola</a>

原因说明

  • 手动编写的链接有效,是因为你直接传递了字符串字面量(比如'logan'),Django能正确匹配URL路由中的<str:name>参数。
  • 在for循环中,你需要直接传入模板变量person,不需要额外的{{}}包裹,也不需要加引号——Django的{% url %}标签会自动解析变量并生成正确的URL。

验证一下,修正后页面源码中的URL会和手动编写的格式一致,都指向正确的用户页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:20:23