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

相关推荐

  1. Mysql社区版日志审计插件

    2024-03-22 11:48:02       38 阅读
  2. <网络安全>《14 日志审计系统》

    2024-03-22 11:48:02       36 阅读
  3. Doris 系统日志审计日志

    2024-03-22 11:48:02       6 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-22 11:48:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-22 11:48:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-22 11:48:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-22 11:48:02       18 阅读

热门阅读

  1. 光模块概述

    2024-03-22 11:48:02       20 阅读
  2. ngnix负载均衡

    2024-03-22 11:48:02       17 阅读
  3. 40 道高频 C++ 面试、笔试题及答案

    2024-03-22 11:48:02       18 阅读
  4. QT编程实现播放器(一)ffmpeg库的编译

    2024-03-22 11:48:02       17 阅读
  5. 卸载.Net SDK

    2024-03-22 11:48:02       18 阅读
  6. SpringCloud-Gateway源码笔记整理

    2024-03-22 11:48:02       22 阅读
  7. Gateway路由谓词(断言)功能

    2024-03-22 11:48:02       17 阅读
  8. 蓝桥杯 / 卡牌 /c\c++

    2024-03-22 11:48:02       20 阅读
  9. Pytorch 中的forward 函数内部原理

    2024-03-22 11:48:02       15 阅读
  10. 全志R128 SDK HAL 模块开发指南——CCU

    2024-03-22 11:48:02       15 阅读
  11. Python爬虫基础知识

    2024-03-22 11:48:02       19 阅读