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

如何在Django模板语言中使用JavaScript变量作为URL参数?

解决方案

不用放弃Django的{% url %}标签,你可以通过生成带占位符的基础URL,再用JS替换占位符的方式实现需求,这样既能保留URL反向解析的维护优势,又能动态传入JS变量。

具体操作如下:

  1. 先确保urls.py里delete_data的路由配置正确(假设第一个参数是业务ID,第二个参数是固定的all):
# urls.py示例
path('delete_data/<int:pk>/<str:scope>/', views.delete_data, name='delete_data')
  1. 在模板的JS代码中,先让Django生成包含占位符的基础URL,再在函数内替换占位符为目标变量:
function deleteData(toBeDeleted) {
    // 用占位符__ID__让Django先生成URL的固定结构
    const baseUrl = "{% url 'delete_data' '__ID__' 'all' %}";
    // 将占位符替换为传入的JS变量toBeDeleted
    const actualUrl = baseUrl.replace('__ID__', toBeDeleted);
    
    $.ajax({
        type: "GET",
        url: actualUrl,
        success: function (data) {
            alert(data);
        }
    });
}

方案优势

  • 当你修改urls.py里delete_data的URL路径时,模板中的baseUrl会通过Django反向解析自动更新,不用手动修改JS代码,避免了两处维护不一致的问题。
  • 占位符可以选__ID__这类不会和业务参数冲突的字符串,确保替换时不会误改URL其他部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 09:12:32