0

0

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

心靈之曲

心靈之曲

发布时间:2025-08-03 22:22:19

|

538人浏览过

|

来源于php中文网

原创

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="{% url 'expens_delete' info.id %}"><i class="bi bi-x"></i></a>
                       <a class="btn btn-warning btn-sm" href="{% 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>
       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="{% url 'expens_delete' info.id %}"><i
                            class="bi bi-x"></i></a>
                    <a class="btn btn-warning btn-sm" href="{% 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 项目。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python Web 框架 Django 深度开发
Python Web 框架 Django 深度开发

本专题系统讲解 Python Django 框架的核心功能与进阶开发技巧,包括 Django 项目结构、数据库模型与迁移、视图与模板渲染、表单与认证管理、RESTful API 开发、Django 中间件与缓存优化、部署与性能调优。通过实战案例,帮助学习者掌握 使用 Django 快速构建功能全面的 Web 应用与全栈开发能力。

169

2026.02.04

bootstrap框架介绍
bootstrap框架介绍

本专题整合了bootstrap框架相关介绍,阅读专题下面的文章了解更多详细内容。

169

2026.03.18

bootstrap安装教程
bootstrap安装教程

本专题整合了bootstrap安装相关教程,阅读专题下面的文章了解更多详细操作教程。

27

2026.03.18

Python WebSocket实时通信与异步服务开发实践
Python WebSocket实时通信与异步服务开发实践

本专题聚焦 Python 在实时通信场景中的开发实践,系统讲解 WebSocket 协议原理、长连接管理、消息推送机制以及异步服务架构设计。内容包括客户端与服务端通信实现、连接稳定性优化、消息队列集成及高并发处理策略。通过完整案例,帮助开发者构建高效稳定的实时通信系统,适用于聊天应用、实时数据推送等场景。

5

2026.03.18

Java Spring Security权限控制与认证机制实战
Java Spring Security权限控制与认证机制实战

本专题围绕 Java 后端安全体系建设展开,重点讲解 Spring Security 在权限控制与认证机制中的应用实践。内容涵盖用户认证流程、权限模型设计、JWT 鉴权方案、OAuth2 集成以及接口安全防护策略。通过实际项目案例,帮助开发者构建安全可靠的后端认证体系,提升系统安全性与可扩展能力。

21

2026.03.18

抖漫入口地址合集
抖漫入口地址合集

本专题整合了抖漫入口地址相关合集,阅读专题下面的文章了解更多详细地址。

137

2026.03.17

多环境下的 Nginx 安装、结构与运维实战
多环境下的 Nginx 安装、结构与运维实战

本专题聚焦多环境下Nginx实战,详解开发、测试及生产环境的差异化安装策略与目录结构规划。深入剖析配置模块化设计、灰度发布流程及跨环境同步机制。结合监控告警、故障排查与自动化运维工具,提供全链路管理方案,助力团队构建灵活、高可用的Nginx服务体系,从容应对复杂业务场景挑战。

14

2026.03.17

PS 批量添加图片
PS 批量添加图片

本专题整合了PS批量添加图片教程合集,阅读专题下面的文章了解更多详细操作。

14

2026.03.17

Nginx 基础架构:从安装配置到系统化管理
Nginx 基础架构:从安装配置到系统化管理

本专题深入解析Nginx基础架构,涵盖从源码编译与包管理安装,到核心配置文件优化及虚拟主机部署。进一步探讨日志轮转、性能调优、高可用集群构建及自动化运维策略,助力管理员实现从单一服务搭建到企业级系统化管理的全面升级,确保Web服务高效、稳定运行。

7

2026.03.17

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.7万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 12.8万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号