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

Django Ajax开发:如何将jQuery获取的变量传入请求URL

解决方案

你遇到的核心是Django模板标签和JS的执行时机差异:{% url %}是服务端渲染阶段就生成静态内容的,你用JS拿到的动态app_id是页面加载后客户端才生成的值,没法直接写入模板标签里,根据你后端视图的参数接收方式选下面任意一种适配即可:

方案1:适配路径参数的后端路由(你的urls.py配置类似path('update_status/<int:app_id>/', views.update_status, name='update_status'))

用占位符替换的方式拼接路径,修改你的AJAX配置里的url行即可:

$.ajax({
    // 先传0作为占位符,模板渲染后会得到类似 /update_status/0/ 的路径,再用JS替换成实际的app_id
    url: "{% url 'update_status' 0 %}".replace('0', app_id),
    data:{
        'new_app_status':app_status,
    },
    success: function (response) {
    },
    error: function (response) {
        console.log(response.errors);
    },
});

方案2:适配查询参数的后端路由(你的后端通过request.GET.get('app_id')获取参数)

直接把app_id加到AJAX的请求参数里即可,不需要修改url,框架会自动把参数拼到请求路径后:

$.ajax({
    url:"{% url 'update_status' %}",
    data:{
        'app_id': app_id, // 新增这一行即可
        'new_app_status':app_status,
    },
    success: function (response) {
    },
    error: function (response) {
        console.log(response.errors);
    },
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 15:54:03