django对数据模型添加修改历史记录日志功能

发布于:2025-04-03 ⋅ 阅读:(15) ⋅ 点赞:(0)

需求:
在django的后台中,用户对数据的修改时,我希望能够实现记录用户修改的值。用户修改了什么?
记录修改前的数据内容
记录修改后的数据内容

要求1:我不想在手动去写中间间了,因为手动写触发中间件需要对没一张数据表都写一次,实在太耗时间了。
要求2:可以简单通过插件方式来对数据表的修改进行记录。而且可以自动适配django admin后台。

django后台admin中添加查看修改历史记录功能

【功能太简单,所以代码就不post上来了,直接看图吧】

实现后的展示

修改记录功能入口

在这里插入图片描述

修改了其它字段

在这里插入图片描述

修改了图片

在这里插入图片描述

删除数据后的查看记录

页面中删除数据ID3

http://127.0.0.1:10005/admin/shangpin/paymentaccount/3/change/

在这里插入图片描述

删除数据ID3后

在这里插入图片描述

可以通过删除数据的ID值+history 来查看删除掉的数据记录

http://127.0.0.1:10005/admin/shangpin/paymentaccount/3/history/

在这里插入图片描述

栏目中查看已经删除的数据的历史记录

【查看删除数据列表–点击进入】
在这里插入图片描述
【查看删除数据列表】
在这里插入图片描述
【选择已经删除的 数据id=5 的数据 进行数据恢复】

数据恢复和回滚

在这里插入图片描述

恢复后的【操作记录】
在这里插入图片描述

恢复后的数据栏显示

在这里插入图片描述

恢复数据后,这时ID=5的数据就不应该存在 【已删除记录】中

恢复前的【已删除记录】
在这里插入图片描述
恢复后的【已删除记录】
在这里插入图片描述

每次删除后恢复都算与一次修改

在这里插入图片描述

记录不同用户对数据的增删改

在这里插入图片描述

修正一下这个记录变更次数的字段,因为之前是每当用户提交数据之后,会让数据库保存两次,这就降低了性能

修正为 仅仅保存一次,并且解决并发性的问题

减少数据库操作:通过锁定记录并一次性保存,避免了多次数据库调用,同时保证了并发安全。

在这里插入图片描述

有作用的参考

1官方文档
https://django-simple-history.readthedocs.io/en/latest/
2 官方文档
https://django-simple-history.readthedocs.io/en/latest/quick_start.html
3 Django官方推荐
https://django.fun/docs/django-simple-history/3.0/historical_model/
4 github问答
https://github.com/jazzband/django-simple-history/issues
5 修改字段显示名字
https://forum.djangoproject.com/t/displaying-verbose-name-while-using-django-simple-history/30497

网络公开搜索以下参考作用不大

1
https://medium.com/@horillahrms/how-to-track-history-in-django-using-django-simple-history-in-2024-104e696c4207
2
https://medium.com/django-unleashed/mastering-the-art-of-django-simple-history-a-tutorial-for-medium-with-examples-c25196339130
3
https://zenn.dev/nakamura196/articles/a57ec98fe157d6
4
https://www.caktusgroup.com/blog/2023/02/13/introduction-django-simple-history/
5 视频
https://www.youtube.com/watch?v=36oCa176Wys&ab_channel=StrikeItBroke
6 视频
https://www.youtube.com/watch?v=5aEvnsfBaNU&ab_channel=CloudWithDjango
7
https://www.reddit.com/r/django/comments/1ennagr/djangosimplehistory_vs_djangoreversion_vs/
8 【视频】讲解的不多 视频很长
https://www.youtube.com/watch?v=irE_crggOCc&ab_channel=MattLayman
视频up的联系方式
https://x.com/mblayman/status/1887490263708209329

有疑问留言即刻


网站公告

今日签到

点亮在社区的每一天
去签到