找回密码
 立即注册
首页 业界区 业界 使用django-simple-history实现简单审计功能

使用django-simple-history实现简单审计功能

腥狩频 2025-7-21 15:29:39
前言

本文依然是中台项目延伸的笔记
这个系列的文章太小众了,看的人都不多
我争取尽快把这系列完结了,然后进入新的项目
关于审计

之前我在 dotnet 的项目里已经自己实现了审计功能了,还是用切面思想搞的
详见:

  • AspNetCore开发笔记:实现动态审计日志功能
  • AspNetCore开发笔记:进一步实现非侵入性审计日志功能
Django 生态非常丰富,实现审计应该也有很多方法和现成的库
而且因为强绑定了自己的一套 ORM ,整个生态都围绕这个体系来展开,更加的开箱即用
simple-history

本文使用了的这个 simple-history 可以记录每个 model 的操作
搭配 DjangoStarter 框架使用,目前已经切换到 unfold admin 作为管理后台,可以无缝集成

  • https://github.com/django-commons/django-simple-history
  • https://unfoldadmin.com/docs/integrations/django-simple-history/
安装(普通Django项目)

这里是普通 Django 项目的步骤
先安装依赖
  1. pdm add django-simple-history
复制代码
注册应用
  1. INSTALLED_APPS = [
  2.     # ...
  3.     'simple_history',
  4. ]
复制代码
添加中间件
这个库的审计功能是通过中间件来实现的,当然也可以不用中间件,需要额外的方式折腾。
  1. MIDDLEWARE = [
  2.     # ...
  3.     'simple_history.middleware.HistoryRequestMiddleware',
  4. ]
复制代码
然后修改 admin 继承 SimpleHistoryAdmin
  1. from simple_history.admin import SimpleHistoryAdmin
  2. @admin.register(Movie)
  3. class MovieAdmin(SimpleHistoryAdmin):
  4.     ...
复制代码
这样就可以在后台看到这个 model 的相关操作了
DjangoStarter集成


实际上是 unfold 的集成
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册