我有一个包含电子邮件地址的表,我需要从表中删除电子邮件地址。该表格在电子邮件地址旁边有删除按钮。
在初始页面加载时,我的 View 将电子邮件地址发送到 Django 模板。当用户单击您要删除的电子邮件地址旁边的删除按钮时,我需要该按钮连同相应电子邮件地址的信息一起发布,以便我的 View 可以从数据库中删除正确的电子邮件地址。
我查看了提交按钮和 POST 信息,但 POST 通常通过发送输入数据来工作。在这种情况下,没有输入数据。这是模板中的代码:
<tr>
<td>{% trans "Email" %}</td>
<td>{% trans " " %}</td>
</tr>
</thead>
<tbody>
{% for licensed_user in licensed_users %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ licensed_user.user.email }}</td>
<td>
<form class="flex-container" method="post" action="{% url 'reseller_dashboard' %}" >
{% csrf_token %}
<div class="input-group">
<button name="delete" type="submit" class="btn btn-default">DELETE
</button>
</div>
</form>
</td>
</tr>
提交按钮时,我需要发送 licensed_user.user.email
以及 POST 方法。
最佳答案
另外一种方式,你也可以使用ajax方法;
{% for licensed_user in licensed_users %}
<tr class="tr__{{ forloop.counter }}">
<td>{{ forloop.counter }}</td>
<td>{{ licensed_user.user.email }}</td>
<td><button data-email="{{ licensed_user.user.email }}"
data-loop="{{ forloop.counter }}"
class="btn btn-default delete-action">Delete</button>
</td>
</tr>
{% endfor %}
<script>
$('.delete-action').click(function(){
var email = $(this).data('email');
var loop = $(this).data('loop');
$.ajax({
type: "POST",
url: "{% url 'reseller_dashboard' %}",
data: {
'csrfmiddlewaretoken': '{{ csrf_token }}',
'email': email,
'delete': true
},
success: function(message) {
console.log(message);
$('.tr__' + loop).remove(); // remove this single `<tr>`
},
error: function(error) {
console.log(error);
}
});
});
</script>
关于html - 带有信息的 Django HTML POST 删除按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45766976/