问题描述
我从下面的代码开始,将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>