【Dv2Admin】软删除的修改与恢复
在系统开发中,软删除是一种常见的设计模式,旨在标记数据为“已删除”而不实际从数据库中移除,以便在需要时可以恢复这些数据。特别是,在某些业务场景中,例如学生数据的管理,每年进行清理时,可能会意外删除部分数据,这时软删除机制便可以发挥作用。
本文将通过批量与单个学生数据的软删除与恢复操作,展示如何设计与实现此类功能,帮助开发人员有效管理数据的生命周期。
文章目录
- 批量修改学生状态信息(软删除)
- 批量恢复学生状态信息(软删除恢复)
- 单个学生状态修改(软删除)
- 单个学生状态恢复(软删除恢复)
- 总结
批量修改学生状态信息(软删除)
在每年的定期数据清理中,可能需要将某一学年之外的所有学生数据标记为“已删除”,以腾出数据库资源或维持业务的清晰度。此函数 student_status_change
实现了这样的需求。
首先,通过传入的学年参数,系统会过滤出指定学年的学生列表。使用 AoYuStudent.objects.filter(exam_year=year)
查询与该年份相关的学生,并通过 values_list('id_student', flat=True)
提取出学生ID。接着,程序会检查是否有合法的学生列表传入,如无则返回错误提示。在成功获取数据后,通过数据库事务机制 transaction.atomic()
保证后续操作的原子性,即所有数据修改要么全