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

Django模板语言:如何将JSON字段作为URL参数传入url标签?

Django模板中正确传递变量到{% url %}标签的方法

你出错的核心原因是在{% url %}标签里多余地用了{{}}包裹变量,Django的模板标签内部可以直接引用模板变量,不需要再套一层双大括号。

正确的写法分两种常见场景:

场景1:URL使用位置参数

如果你的URL配置是位置参数形式(比如参数按顺序匹配):

# urls.py
path('some-url/<int:param>/', views.some_view, name='some-url')

对应的模板代码应写成:

{% for row in rows %}
<tr>
    <td>{{ row.a }}</td>
    <td><a href="{% url 'some-url' row.b %}">{{ row.b }}</a></td>
</tr>
{% endfor %}

场景2:URL使用关键字参数

如果希望通过参数名明确传递(可读性更强,尤其当URL有多个参数时):

# urls.py
path('some-url/<int:param>/', views.some_view, name='some-url')

模板代码可以写成:

{% for row in rows %}
<tr>
    <td>{{ row.a }}</td>
    <td><a href="{% url 'some-url' param=row.b %}">{{ row.b }}</a></td>
</tr>
{% endfor %}

简单来说:在{% url %}标签内部传递模板变量时,直接写变量名row.b即可,不需要写成{{ row.b }}——后者会被标签当成普通字符串处理,根本无法解析出变量的实际值,自然生成不了正确的URL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:00:55