首页/新闻资讯/正文详情

【Dv2Admin】软删除的修改与恢复

发布时间:2026/9/24 13:53:22 来源:云帆数科 栏目:资讯中心
【Dv2Admin】软删除的修改与恢复
在系统开发中,软删除是一种常见的设计模式,旨在标记数据为“已删除”而不实际从数据库中移除,以便在需要时可以恢复这些数据。特别是,在某些业务场景中,例如学生数据的管理,每年进行清理时,可能会意外删除部分数据,这时软删除机制便可以发挥作用。本文将通过批量与单个学生数据的软删除与恢复操作,展示如何设计与实现此类功能,帮助开发人员有效管理数据的生命周期。文章目录批量修改学生状态信息(软删除)批量恢复学生状态信息(软删除恢复)单个学生状态修改(软删除)单个学生状态恢复(软删除恢复)总结批量修改学生状态信息(软删除)在每年的定期数据清理中,可能需要将某一学年之外的所有学生数据标记为“已删除”,以腾出数据库资源或维持业务的清晰度。此函数student_status_change实现了这样的需求。首先,通过传入的学年参数,系统会过滤出指定学年的学生列表。使用AoYuStudent.objects.filter(exam_year=year)查询与该年份相关的学生,并通过values_list('id_student', flat=True)提取出学生ID。接着,程序会检查是否有合法的学生列表传入,如无则返回错误提示。在成功获取数据后,通过数据库事务机制transaction.atomic()保证后续操作的原子性,即所有数据修改要么全部成功,要么在出现错误时完全回滚,避免系统出现数据不一致的情况。在事务的上下文中,定义了一个通用的bulk_update函数,这个函数用于将与传入学生ID无关的所有数据的is_deleted字段更新为True,实现软删除。该函数的灵活性体现在可以作用于不同的模型表(如TrainOrder),通过将model_class作为参数传入来批量更新各个表中的数据。此设计避免了重复代码的产生,同时提高了代码的可维护性。最终,如果所有操作成功完成,将返回修改成功的提示。

相关推荐

wp-calypso 中 AutomatticBylineLogo 组件:渲染「AN AUTOMATTIC AIRLINE」品牌 Byline 徽标的完整指南
wp-calypso 中 AutomatticBylineLogo 组件:渲染「AN AUTOMATTIC AIRLINE」品牌 Byline 徽标的完整指南

前端CMS 【免费下载链接】wp-calypso The JavaScript and API powered WordPress.com 项目地址: https://gitcode.com/gh_mirrors/wp/wp-calypso 点击查看 免费下载 本指南以 wp-calypso 仓库内 client/components/jetpack/automattic-byline-logo/README.md 为骨架… · 2026/9/24 13:53:22

OpenCore Legacy Patcher:让 2010 年的 Mac 装上新版 macOS
OpenCore Legacy Patcher:让 2010 年的 Mac 装上新版 macOS

OpenCore Legacy Patcher:让 2010 年的 Mac 装上新版 macOS 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 打开一台 2012 年 MacBook Pro 的&quo… · 2026/9/24 13:53:22

Feign Annotation Error Decoder 使用指南:用注解按 HTTP 状态码声明式生成异常
Feign Annotation Error Decoder 使用指南:用注解按 HTTP 状态码声明式生成异常

后端API设计 【免费下载链接】feign Feign makes writing java http clients easier 项目地址: https://gitcode.com/gh_mirrors/fe/feign 点击查看 免费下载 本文是 OpenFeign 生态中 feign-annotation-error-decoder 模块的完整使用指南。该模块允许开发者在 Fei… · 2026/9/24 13:53:22

HBase 2.0上安装Phoenix 5.0.0:选包、配置与生产避坑全指南
HBase 2.0上安装Phoenix 5.0.0:选包、配置与生产避坑全指南

简介:这份压缩包是 Apache Phoenix 5.0.0 针对 HBase 2.0 的官方编译二进制发行版,面向需要在大数据平台上通过标准 SQL 对 HBase 数据做低延迟查询的架构师、运维与开发人员。Phoenix 以 JDBC 驱动形式提供关系型数据库访问层,会把 SQL 自动… · 2026/9/25 2:11:11

RL-赵-(七)-不基于模型2-时序差分/TD算法02-计算ActionValue:Sarsa01【基于RM算法⮕求解贝尔曼公式】【基于一步采样直接求出给定π下ActionValue】
RL-赵-(七)-不基于模型2-时序差分/TD算法02-计算ActionValue:Sarsa01【基于RM算法⮕求解贝尔曼公式】【基于一步采样直接求出给定π下ActionValue】

RL-赵-(七)-不基于模型3:Sarsa【TD算法】【在线】【基于RM算法在无模型条件下求解贝尔曼公式->基于一步采样直接计算出给定π下的Action Value->立刻基于ϵ-greedy更新π】 原始Sarsa用于估计一个给定policy(π)的 Action Value(Policy Evaluation)。 和 Policy Improv… · 2026/9/25 2:11:05

【Dify】多阶段深度学习图像处理应用
【Dify】多阶段深度学习图像处理应用

深度学习驱动的多阶段图像处理工作流正在成为视觉内容生成与优化的重要工具。以模型节点协同方式,流程实现了图像的逐步增强和智能化处理,适合初学编程者理解与上手。 本文梳理了典型多模型工作流的操作流程,解析每个环节的节点作用与实现方式,展示多场景下的应用方法,为… · 2026/9/25 2:11:05

RL-赵-(七)-不基于模型2-时序差分/TD算法05-计算ActionValue:Q-Learning01【求贝尔曼最优公式⮕直接得最优ActionValue⮕直接更新目标π】【无需PE与PI迭代】
RL-赵-(七)-不基于模型2-时序差分/TD算法05-计算ActionValue:Q-Learning01【求贝尔曼最优公式⮕直接得最优ActionValue⮕直接更新目标π】【无需PE与PI迭代】

RL-赵-(七)-不基于模型5:Q-Learning【TD算法】【离线】【基于RM算法在无模型条件下求解贝尔曼最优公式->直接计算出最优ActionValue->直接更新目标π】【无需PE与PI迭代】 直接求解q*(最优action value)得到最优策略,无需在PE与PI迭代来找最优策略。 直接估计optimal acti… · 2026/9/25 2:11:05

C语言详解
C语言详解

文章目录1 . 概要2 . C语言语法2.1 关键字解释、3 . C语言运算符优先级4 . 本质理解4.1 内存的本质:数字世界的生命与轮回4.2 语法的本质:掌控数字宇宙的至高功法5 . 语法应用5.1 简单示例5.2 指针:时空操控的灵魂之术5.2.1 跨越维度的力量5.… · 2026/9/25 2:11:05

RL-赵-(七)-不基于模型2-时序差分/TD算法04-计算ActionValue:n-step Sarsa【折中①one-step Sarsa与②∞-step MC:采样n步然后更新π】
RL-赵-(七)-不基于模型2-时序差分/TD算法04-计算ActionValue:n-step Sarsa【折中①one-step Sarsa与②∞-step MC:采样n步然后更新π】

RL-赵-(七)-不基于模型4:n-step Sarsa【TD算法】【Sarsa与MC的折中形式:采样n步就更新π】【Sarsa只需要一步的数据就更新;MC需等到一个episode数据搜集结束再更新】 n-Step Sarsa是Sarsa的一个变型或者是一个推广,因为n-step Sarsa包含了Sarsa和蒙特卡洛两种方法,也就是c… · 2026/9/25 2:11:05

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码