腥狩频 发表于 2025-7-21 15:29:39

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

前言

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

之前我在 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 项目的步骤
先安装依赖
pdm add django-simple-history注册应用
INSTALLED_APPS = [
    # ...
    'simple_history',
]添加中间件
这个库的审计功能是通过中间件来实现的,当然也可以不用中间件,需要额外的方式折腾。
MIDDLEWARE = [
    # ...
    'simple_history.middleware.HistoryRequestMiddleware',
]然后修改 admin 继承 SimpleHistoryAdmin
from simple_history.admin import SimpleHistoryAdmin

@admin.register(Movie)
class MovieAdmin(SimpleHistoryAdmin):
    ...这样就可以在后台看到这个 model 的相关操作了
DjangoStarter集成


实际上是 unfold 的集成
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 使用django-simple-history实现简单审计功能