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

如何将JavaScript变量动态传入Django生成的URL参数中

解决方案

核心逻辑:{% url %} 是Django服务端渲染标签,页面发送到浏览器时已经解析为固定字符串,JS无法直接修改服务端模板逻辑,因此用占位符替换的方式实现动态传参即可,操作步骤如下:

  • 第一步:给a标签加唯一ID,同时给动态参数n传入一个不会和实际业务值重复的唯一占位符
<a id="project-data-link" href="{% url 'main:projectdata' proname=pro.projectname n='__STATE_PLACEHOLDER__' %}"></a>
  • 第二步:JS侧封装更新链接的方法,每次state变更时调用该方法替换占位符即可
const linkDom = document.getElementById('project-data-link');
// 缓存服务端渲染好的带占位符的基础链接
const baseLink = linkDom.href;
let state = 'Done';

// 封装更新方法
function refreshLink() {
  linkDom.href = baseLink.replace('__STATE_PLACEHOLDER__', state);
}

// 页面初始化先执行一次替换,匹配初始state值
refreshLink();

// 后续所有修改state的位置,修改完成后调用refreshLink()即可,示例:
state = 'Pending';
refreshLink();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:54:10