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

如何在Django模板的{% url %}标签中传递变量作为路由参数

解决方案

你在{% url %}标签中错误使用了Python原生语法str(y)传参,Django模板语言不支持在标签参数位置直接调用Python内置函数,传路由参数时直接引用上下文变量名即可,不需要手动做字符串转换。

修改后的模板代码:

<body>
    <h1>{{ x }}</h1>
    <a href="{% url 'app:result' number=y %}">Square it</a>
</body>

补充说明

  • 你模板里写的{{ str(x) }}属于冗余写法,Django模板渲染变量时默认会将值转为字符串输出,直接写{{ x }}就能正常显示数值5,不需要手动调用str()。
  • {% url %}标签拼接路由时会自动把传入的变量转为符合URL要求的字符串格式,无论你路由里的number参数声明为<str:number>还是<int:number>,直接传y就能生成正确的路径。比如你的场景下最终渲染出的链接地址是/result/10/,点击后就能正常进入result视图,返回10的平方值100。

对应路由参考配置(和你现有逻辑完全兼容,不需要修改):

from django.urls import path
from . import views

app_name = 'app'
urlpatterns = [
    path('result/<number>/', views.result, name='result'),
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:03:50