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

使用sweetAlert删除用户时URL变量值无法正常渲染问题

问题原因

你的问题核心在于Django模板标签的执行时机和JavaScript变量的执行时机不匹配:

  • Django的{% url %}是服务器端渲染标签,在页面加载前就已经解析完成,生成对应的URL字符串;
  • 而JavaScript的id变量是客户端运行时的变量,服务器渲染模板时根本不知道这个变量的实际值,所以直接拼接后,服务器会把" +id+"当作字符串字面量处理,最终生成的URL是用字符串id作为参数的无效路径。
解决方案

这里提供两种最直接的修复方式:

方式一:在HTML中提前生成完整URL,传递给JS函数

直接在HTML的点击事件中,把Django渲染好的完整删除URL作为参数传给JS函数,避免在JS里拼接模板标签:

修改后的HTML代码

<td>
  <a href="#" onClick="delInscPart('{% url 'suppPartners' list.user_inscrit.username %}');">
    <i data-feather="trash-2"></i>Supprimer
  </a>
</td>

修改后的JavaScript代码

function delInscPart(url){
  Swal.fire({
    title: "Êtes-vous sûr de vouloir supprimer l'invité ?",
    text: "Si vous confirmez cette opération, vous supprimerez cet invité !",
    icon: "warning",
    showCancelButton: true,
    cancelButtonText: "Annuler",
    confirmButtonText: "Je confirme",
    reverseButtons: true,
  }).then(function(result){
    if(result.isConfirmed){
      window.location.href = url;
      console.log(url);
    }
  });
}

方式二:生成URL模板,客户端替换占位符

如果需要在JS中动态处理ID,可以先让Django生成一个带占位符的URL模板,再在JS里用实际ID替换占位符:

在HTML中添加URL模板(放在script标签中)

<script>
// 让Django生成带占位符的基础URL
const deleteUrlTemplate = "{% url 'suppPartners' '__USER_ID__' %}";
</script>

修改后的JavaScript代码

function delInscPart(id){
  // 替换占位符为实际用户ID
  const url = deleteUrlTemplate.replace('__USER_ID__', id);
  Swal.fire({
    title: "Êtes-vous sûr de vouloir supprimer l'invité ?",
    text: "Si vous confirmez cette opération, vous supprimerez cet invité !",
    icon: "warning",
    showCancelButton: true,
    cancelButtonText: "Annuler",
    confirmButtonText: "Je confirme",
    reverseButtons: true,
  }).then(function(result){
    if(result.isConfirmed){
      window.location.href = url;
      console.log(url);
    }
  });
}

注意事项

  • 建议给SweetAlert的icon属性设置值(比如"warning"),这样弹窗会显示对应的警告图标,提升用户体验;
  • 修正了原代码中的拼写错误:Anuller改为Annuler,supprimé l invité改为supprimer l'invité等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:10:28