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

如何在Django的json_script中使用URL模板标签?

解决Django URL标签无法在json_script中渲染的问题

你遇到的核心问题是:将URL模板标签当作字符串字面量传递给json_script过滤器,导致Django未解析模板标签,直接输出原始文本。

错误写法的问题

  • 第一种写法:把{% url ... %}包裹在双引号中,使其成为普通字符串,Django不会解析字符串内部的模板标签。
  • 第二种写法:完全搞反了json_script的用法——该过滤器的参数是目标script标签的id,而非要渲染的URL,且要过滤的值应该是已解析的URL变量。

正确实现方式

先让Django解析URL标签得到实际的URL字符串,再将其传入json_script过滤器:

方式1:先赋值变量再使用

{% url 'tutorhomepage:tutorSelectedDay' tutor_id selected_date as tutor_selected_url %}
{{ tutor_selected_url | json_script:"url_test" }}

方式2:使用with标签简化

{% with tutor_selected_url=url 'tutorhomepage:tutorSelectedDay' tutor_id selected_date %}
{{ tutor_selected_url | json_script:"url_test" }}
{% endwith %}

正确输出示例

执行后生成的代码会是已渲染的实际URL:

<script id="url_test" type="application/json">"/tutorhomepage/1/2024-05-20/"</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:35:18