当前位置: 首页 > article >正文

django管理日志记录(日志审计django_admin_log)

环境

django 4.1

用途

django_admin_log 表主要用于以下几个方面:

审计日志: 可以用来记录管理界面的所有操作,以便审计管理员的操作。
故障排除: 可以用来诊断和排除管理界面相关的问题。
数据恢复: 可以用来恢复意外删除的数据。

from django.contrib import admin

# Register your models here.
@admin.register(admin.models.LogEntry)
class LogEntryAdmin(admin.ModelAdmin):
    """
    该类用于显示 admin 内置的 django_admin_log 表。
    其中,content_type 是指用户修改的 Model 名
    """
    list_display = ['action_time', 'user', 'content_type', '__str__']
    list_display_links = ['action_time']
    list_filter = ['action_time', 'content_type', 'user']
    list_per_page = 15
    readonly_fields = ['action_time', 'user', 'content_type',
                       'object_id', 'object_repr', 'action_flag', 'change_message']

在这里插入图片描述
在这里插入图片描述

注意

django_admin_log 表可能会包含大量的数据,因此需要定期清理。您可以使用 django.contrib.admin.utils.purge_deleted_admin_logs() 函数来清理过期的日志记录。

扩展

在 Django 中,LogEntry 是一个用于记录管理界面操作的模型。它对应于 django_admin_log 表中的记录。

LogEntry 模型包含以下字段:

id: 自增主键
action_time: 操作时间
user: 执行操作的用户
content_type: 操作对象的类型
object_id: 操作对象的 ID
object_repr: 操作对象的表示形式
changes: 操作的详细信息
LogEntry 模型的主要用途包括:

审计日志: 可以用来记录管理界面的所有操作,以便审计管理员的操作。
故障排除: 可以用来诊断和排除管理界面相关的问题。
数据恢复: 可以用来恢复意外删除的数据。
以下是一些使用 LogEntry 模型的示例:
获取所有日志记录:

from django.contrib.admin.models import LogEntry

all_logs = LogEntry.objects.all()

获取特定用户的日志记录:

from django.contrib.admin.models import LogEntry

user_logs = LogEntry.objects.filter(user=request.user)

获取特定对象的日志记录:

from django.contrib.admin.models import LogEntry

from myapp.models import MyModel

mymodel_logs = LogEntry.objects.filter(content_type=ContentType.objects.get_for_model(MyModel), object_id=mymodel_instance.id)

获取特定操作类型的日志记录:

from django.contrib.admin.models import LogEntry

add_logs = LogEntry.objects.filter(object_repr__contains="Added")

参考:
主动显示 Django Admin 的日志表 django_admin_log


http://www.kler.cn/a/273594.html

相关文章:

  • github - ssh 配置 key、下载repo
  • Hugging Face魔塔使用
  • 4种鼓励创业创新的方法
  • java、excel表格合并、指定单元格查找、合并文件夹
  • 【运动的&足球】足球运动员球守门员裁判检测系统源码&数据集全套:改进yolo11-DBBNCSPELAN
  • 【P2-3】ESP8266 WIFI模块在STA模式下作为TCP服务器与多个电脑/手机网络助手(TCP客户端)通信——TCP数据透传
  • p2p原理
  • WMware安装ghost镜像
  • 使用verilog写一个模拟比特币挖矿游戏及testbench
  • Stable Diffusion WebUI 生成参数:采样器(Sampling method)和采样步数(Sampling steps)
  • 【解读】NIST网络安全框架CSF 2.0
  • idea+vim+pycharm的块选择快捷键
  • WRF模型教程(ububtu系统)-WPS(WRF Pre-Processing System)概述
  • 常用pip命令
  • 在Latex中优雅的插入svg图片(Ubuntu22.04)
  • 事务、并发、锁机制的实现
  • EDI在汽车主机厂配送流程中的应用
  • Jenkins 一个进程存在多个实例问题排查
  • 深入解析MVCC:多版本并发控制的数据库之道
  • 自然语言:如何通过机器学习和自然语言处理技术训练生成一个AI?有没有代码展示
  • vite打包流程和原理
  • OpenCV Steger算法提取条纹中心线
  • Android Studio实现内容丰富的安卓美食管理发布平台
  • 【机器学习】函数
  • 小红书推广费用一般多少?CloudNEO:7000+达人资源,助您一臂之力
  • 关于物联网的技术与概念