django的读日志审计
django-read-log的Python项目详细描述
简单的应用程序记录每次显示一个对象,可以与django简单历史结合使用,以实现完整的审计解决方案。 目前标准的基于类的视图:DetailView,UpdateView,DeleteView,ListView 因为视图将显示对象作为功能的一部分来处理,所以支持开箱即用。 对于DeleteView和UpdateView,大多数情况下您希望显示对象(GET request) 在允许用户删除/更新对象之前。在
其他自定义视图很可能受支持请参见Using django-read-log in combination with unsupported views
对于每个视图,以下数据存储在审核模型(ReadLog)中:
user: | Who view the item, can be an anonymous user. |
---|---|
content_object: | A reference to the viewed object using a generic foreign key, if you delete an object the log entry will still be present. |
operation: | What operation triggered the the log entry to be written(detail, list, update, delete). |
logged_at: | When was the object viewed. |
使用
只需3个简单步骤即可轻松使用
- 将已安装的应用程序添加到“U”日志中设置.py在
- 运行迁移:python管理.py迁移读取日志
- 导入并使用mixin
fromread_log.view_mixinsimportReadLogMixinfromtest_read_log.modelsimportTestModelclassTestDetailView(ReadLogMixin,DetailView):model=TestModel
自定义记录的操作
默认情况下,以下视图映射到以下操作。在
^{tb2}${/str}可以将{/str}属性的 ^{pr2}$
结合使用django read log和不支持的视图
因为视图mixin钩住了get_context_data视图函数,所以应该可以将mixin添加到 不支持的视图,只要它们实现或继承get_context_data函数 (例如,从SingleObjectMixin或MultipleObjectMixin)并将类属性'logoperation'定义到字符串 您希望记录为“操作”字段。在
不包括演示文稿
当需要审计时,您通常希望限制数据的公开,但不显示ReadLog 如果您需要一种显示Readlog的方法,则由您来实现它。在
fromdjango.contribimportadminfromread_log.modelsimportReadLogadmin.site.register(ReadLog)
- 项目
标签: