值得一看
双11 12
广告
广告

Django 中实现批量删除确认提示

django 中实现批量删除确认提示

本文介绍了如何在 Django 项目中,针对通过复选框选择的多个数据进行批量删除操作时,添加用户确认提示。通过 JavaScript 的 confirm() 方法,在用户点击删除按钮后弹出确认对话框,避免误操作导致的数据丢失,从而提升用户体验。

在 Django 项目中,实现批量删除功能时,为了防止用户误操作,通常需要在删除前添加一个确认提示。以下介绍如何利用 JavaScript 的 confirm() 函数实现这一功能。

实现步骤:

  1. 修改 HTML 模板:

在 HTML 模板中,找到批量删除按钮,并添加一个 onclick 事件处理程序。该事件处理程序会调用 confirm() 函数,根据用户的选择决定是否提交表单。

   <form method="post" id="deleteForm">
{% csrf_token %}
<table class="table table-success table-striped" id="table">
<thead>
<th>#</th>
<th>Assignments</th>
<th>Amount</th>
<th>Date</th>
<th>
<button class="btn btn-danger btn-sm" name="delete_all" onclick="return confirmDelete()">Delete selected</button>
</th>
</thead>
<tbody>
{% for info in data %}
<tr>
<td><input type="checkbox" name="x[]" value="{{info.id}}"> {{forloop.counter}}</td>
<td>{{info.assignment}}</td>
<td>{{info.amount}}</td>
<td>{{info.add_date}}</td>
<td>
<a class="btn btn-danger btn-sm" href="https://www.php.cn/faq/{% url 'expens_delete' info.id %}"><i class="bi bi-x"></i></a>
<a class="btn btn-warning btn-sm" href="https://www.php.cn/faq/{% url 'expens_edit' info.id %}"><i class="bi bi-pencil"></i></a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</form>
  1. 添加 JavaScript 代码:

在 HTML 模板的 <script> 标签中,添加以下 JavaScript 代码。该代码定义了一个名为 confirmDelete() 的函数,该函数会弹出一个确认对话框,询问用户是否确定删除。如果用户点击“确定”按钮,则返回 true,表单将被提交;否则,返回 false,表单不会被提交。</script>

   <script>
function confirmDelete() {
return confirm("确定要删除选中的数据吗?");
}
</script>
  1. 修改 views.py:

保持原有的逻辑不变。

   def expens(request):
data = ''
number = ''
if 'delete_all' in request.POST:
choosen = request.POST.getlist('x[]')
if choosen:
for selected in choosen:
picked = Expenses.objects.filter(id=selected)
picked.delete()
messages.info(
request, "Expens data has been deleted successfully.", extra_tags='success')
else:
messages.info(request, "Please select to delete.",
extra_tags='error')
if 'save' in request.POST:
pass  # Handle save logic if needed
return render(request, 'expens.html', {'data': data, 'number': number})

完整示例代码:

{% extends 'base.html' %}
{% block content %}
<form method="post" id="deleteForm">
{% csrf_token %}
<table class="table table-success table-striped" id="table">
<thead>
<th>#</th>
<th>Assignments</th>
<th>Amount</th>
<th>Date</th>
<th>
<button class="btn btn-danger btn-sm" name="delete_all" onclick="return confirmDelete()">Delete
selected</button>
</th>
</thead>
<tbody>
{% for info in data %}
<tr>
<td><input type="checkbox" name="x[]" value="{{info.id}}"> {{forloop.counter}}</td>
<td>{{info.assignment}}</td>
<td>{{info.amount}}</td>
<td>{{info.add_date}}</td>
<td>
<a class="btn btn-danger btn-sm" href="https://www.php.cn/faq/{% url 'expens_delete' info.id %}"><i
class="bi bi-x"></i></a>
<a class="btn btn-warning btn-sm" href="https://www.php.cn/faq/{% url 'expens_edit' info.id %}"><i
class="bi bi-pencil"></i></a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</form>
<script>
function confirmDelete() {
return confirm("确定要删除选中的数据吗?");
}
</script>
{% endblock %}

注意事项:

  • 确保在 HTML 模板中正确引入了 JavaScript 代码。
  • 可以根据实际需求自定义确认对话框的内容。
  • 如果需要更复杂的确认提示,例如自定义样式的模态框,可以使用 JavaScript 库(如 Bootstrap Modal)来实现。
  • confirm() 函数是浏览器提供的内置函数,因此无需额外安装任何依赖。

总结:

通过以上步骤,可以在 Django 项目中轻松实现批量删除确认提示功能,有效地防止用户误操作,提升用户体验。这种方法简单易用,无需引入额外的依赖,适用于大多数 Django 项目。

温馨提示: 本文最后更新于2025-08-03 22:28:18,某些文章具有时效性,若有错误或已失效,请在下方留言或联系易赚网
文章版权声明 1 本网站名称: 创客网
2 本站永久网址:https://new.ie310.com
1 本文采用非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
2 本站所有内容仅供参考,分享出来是为了可以给大家提供新的思路。
3 互联网转载资源会有一些其他联系方式,请大家不要盲目相信,被骗本站概不负责!
4 本网站只做项目揭秘,无法一对一教学指导,每篇文章内都含项目全套的教程讲解,请仔细阅读。
5 本站分享的所有平台仅供展示,本站不对平台真实性负责,站长建议大家自己根据项目关键词自己选择平台。
6 因为文章发布时间和您阅读文章时间存在时间差,所以有些项目红利期可能已经过了,能不能赚钱需要自己判断。
7 本网站仅做资源分享,不做任何收益保障,创业公司上收费几百上千的项目我免费分享出来的,希望大家可以认真学习。
8 本站所有资料均来自互联网公开分享,并不代表本站立场,如不慎侵犯到您的版权利益,请联系79283999@qq.com删除。

本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
喜欢就支持一下吧
点赞5赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容