sweetalert在Django模板上不起作用

问题描述

我从下面的代码开始,将ID发送到删除模型对象的方法,但是始终发送第一个ID。

这是我的HTML和JavaScript代码

{% for yad in yads %}
  <form action="{% url 'del-yadd' %}" method="post" id="myform">
      {% csrf_token %}
      <button type="button" name="yidd" value="{{yad.id}}" id="btndelme"  class=" btn btn-danger" onclick="
   swal({
          title: 'warning!',text: 'do you want to delete?',type: 'warning',showCancelButton: true,confirmButtonColor: '#3085d6',cancelButtonColor: '#d33',cancelButtonText:'no',confirmButtonText: 'yes'
         },function(isConfirm) {
          if (isConfirm) {
             document.querySelector('#myform').submit();
            }});   
">delete</button> 
    
  </form>
{% endfor %}

这是我的Django视图代码: def delete_yadd(请求): id = request.POST ['yidd'] yad = Yadd.objects.filter(id = id).delete() 返回redirect('home')

解决方法

您的 SweetAlert 没有显示的原因是因为它需要使用 javascript 函数在 html 文档的末尾附近被调用。我改变的是你调用sweetalert函数的方式,如下所示:

{% for yad in yads %}
<form action="{% url 'del-yadd' %}" method="post" id="myform">
  {% csrf_token %}
  <button type="button" name="yidd" value="{{yad.id}}" id="btndelme"  class=" btn btn-danger" onclick="confirm()"></button>
</form>
{% endfor %}
<script>
    function confirm() {
        swal({
                title: 'warning!',text: 'do you want to delete?',icon: 'warning',showCancelButton: true,confirmButtonColor: '#3085d6',cancelButtonColor: '#d33',cancelButtonText: 'no',confirmButtonText: 'yes'
            },function (isConfirm) {
                if (isConfirm) {
                    document.querySelector('#myform').submit();
                }
            })
    }
</script>