首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Django的admin -Django上记录活动

基础概念

Django 是一个高级 Python Web 框架,它鼓励快速开发和干净、实用的设计。Django 的 admin 界面是一个强大的工具,用于管理 Django 应用程序中的数据模型。通过 admin 界面,管理员可以轻松地添加、编辑和删除数据记录。

相关优势

  1. 快速开发:Django 的 admin 界面自动生成,减少了手动编写管理界面的工作量。
  2. 灵活性:可以自定义 admin 界面,以满足特定需求。
  3. 安全性:Django 的 admin 界面内置了多种安全机制,如权限控制和防止跨站请求伪造(CSRF)。
  4. 易用性:admin 界面提供了直观的用户界面,使得数据管理变得简单。

类型

Django 的 admin 界面主要分为以下几类:

  1. 模型管理:用于管理 Django 模型中的数据。
  2. 自定义管理:可以通过继承 admin.ModelAdmin 类来自定义 admin 界面的行为和外观。
  3. 第三方集成:可以集成第三方库来扩展 admin 界面的功能。

应用场景

Django 的 admin 界面适用于以下场景:

  1. 数据管理:对于需要频繁添加、编辑和删除数据的场景,admin 界面非常有用。
  2. 内容管理系统(CMS):可以基于 Django 的 admin 界面构建简单的 CMS。
  3. 内部管理系统:适用于企业内部的各类管理系统。

记录活动

在 Django 的 admin 界面上记录活动,通常是指记录用户在 admin 界面上的操作日志。这可以通过 Django 的信号(signals)机制来实现。

实现步骤

  1. 创建日志模型:首先,需要创建一个模型来存储日志信息。
代码语言:txt
复制
from django.db import models
from django.contrib.auth.models import User

class AdminActivityLog(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    action = models.CharField(max_length=255)
    timestamp = models.DateTimeField(auto_now_add=True)
    details = models.TextField(blank=True, null=True)

    def __str__(self):
        return f"{self.user} - {self.action} - {self.timestamp}"
  1. 使用信号记录活动:在 admin.py 文件中使用 Django 的信号机制来记录用户的操作。
代码语言:txt
复制
from django.contrib import admin
from django.contrib.admin.signals import pre_save, post_save, pre_delete
from django.dispatch import receiver
from .models import YourModel, AdminActivityLog

@receiver(pre_save, sender=YourModel)
def log_pre_save(sender, instance, **kwargs):
    log = AdminActivityLog(
        user=admin.site.user,
        action=f"Pre-save {instance}",
        details=str(instance.__dict__)
    )
    log.save()

@receiver(post_save, sender=YourModel)
def log_post_save(sender, instance, created, **kwargs):
    action = "Created" if created else "Updated"
    log = AdminActivityLog(
        user=admin.site.user,
        action=f"{action} {instance}",
        details=str(instance.__dict__)
    )
    log.save()

@receiver(pre_delete, sender=YourModel)
def log_pre_delete(sender, instance, **kwargs):
    log = AdminActivityLog(
        user=admin.site.user,
        action=f"Pre-delete {instance}",
        details=str(instance.__dict__)
    )
    log.save()

参考链接

通过上述步骤,你可以在 Django 的 admin 界面上记录用户的操作日志。这样可以方便地追踪和审计管理员的操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 在django-admin中使用django-ckeditor

    在最新学习python中,使用django搭建博客系统,管理后台直接使用django自带的admin模块,所以遇到富文本编辑的问题,经过查阅资料,发现了django-ckeditor这个小插件,下面小威就分享一点点来自小白的经验吧...~ 首先安装django-ckeditor pip install django-ckeditor 其次,需要安装pillow(pillow是python的一个图形处理库,此次用到的django-ckeditor...需要依赖此库) pip install pillow 安装好后,就是要进行django的配置,大致配置步骤如下: 1.在settings.py文件中,将“ckeditor”和“ckeditor_uploader...”加入到“INSTALLED_APPS”中 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', '...: STATIC_URL = '/static/' STATIC_ROOT = 'static' 在urls.py中的“urlpatterns”添加配置: from django.views import

    1.6K30

    在 Django Admin 后台发布文章

    如它所言,我们确实还没有发布任何文章,本节我们将使用 Django 自带的 Admin 后台来发布我们的博客文章。...在 Admin 后台注册模型 要在后台注册我们自己创建的几个模型,这样 Django Admin 才能知道它们的存在,注册非常简单,只需要在 blog\admin.py 中加入下面的代码: blog/admin.py.../ ,就进入了到了Django Admin 后台登录页面,输入刚才创建的管理员账户密码就可以登录到后台了。...,但是我们希望它显示更加详细的信息,这需要我们来定制 Admin 了,在 admin.py 添加如下代码: blog/admin.py from django.contrib import admin...刷新 Admin Post 列表页面,可以看到显示的效果好多了。 image.png 总结 本章节的代码位于:Step7: publish posts using django admin。

    2.1K60

    在非admin页面使用 Django Ueditor(二)

    Django Ueditor的安装和在admin页面的使用请看,接下来的内容是基于这篇文章的环境进行的:使用 Django Ueditor 富文本编辑器(一),如果你按照下面的流程来做还有关于Ueditor...UEditorField('内容', width=1000, height=500, toolbars="besttome") # 这里不一定要用UEditorField,可以用TextField,这个对非admin...在这里我只对该文章模型的富文本字段创建Form,方便前端个性化设计: from django.forms import forms from DjangoUeditor.forms import UEditorField...POST': # 新建文章 Article.objects.create(**request.POST) return HttpResponseRedirect('在提交后一般的做法是前往文章列表页展示新文章...from django.urls import path from django.conf.urls.static import static from django.conf import settings

    70420

    Django admin 一些有用的设置

    Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行控制。以下是我最近摸索总结出比较实用的配置。...1、记录列表基本设置 比较实用的记录列表设置有显示字段、每页记录数和排序等。 ?...4.设置只读字段  在使用admin的时候,ModelAdmin默认对于model的操作只有增加,修改和删除,但是总是有些字段是不希望用户来编辑的。...8.修改app的显示名称 Dajngo在Admin后台默认显示的应用的名称为创建app时的名称。...我们如何修改这个app的名称达到定制的要求呢,其实Django已经在文档里进行了说明。 从Django1.7以后不再使用app_label,修改app相关需要使用AppConfig。

    2.6K70

    web | Django,高大上的存在

    开发的大部分麻烦 因此您可以专注于编写应用程序 而无需重新发明轮子 架构设计 Django基于MVC模式 其中M代表模型(model) V代表视图(view) C代表控制器(control) 但是在...Django中 控制器接受用户输入的部分 由框架自行处理 所以Django里更关注的架构是 MTV T代表模板(Template) 优点 可重用性 易维护 易扩展 减少代码量 安装Django...首先我们要安装Django 因为Django是由python编写的 所以安装的Django版本需要跟自己python版本相对应 否则安装会出错 通过下图根据自己的python版本安装相对应的Django...因为我python版本是3.6的 选择安装的是2.2LTS最新版本 pip install django==2.2 #"=="用来指定版本号 安装完后我们来检验是否安装成功 python -m django...--version #如果出现版本号,说明安装成功 下节将带大家初步使用django 本人目前也正在学习这方面的知识 所以感兴趣的同学可以加入我们的 佛系大家庭~ 一起探讨 群里也有很多热情的小伙伴

    73420

    django 1.8 官方文档翻译: 6-4-2 编写自定义的django-admin命令

    编写自定义的django-admin命令 应用可以通过manage.py注册它们自己的动作。例如,你可能想为你正在发布的Django应用添加一个manage.py动作。...Changed in Django 1.8: 在之前的版本中,Django强制使用"en-us"区域设置而不是使转换失效。...BaseCommand.requires_system_checks New in Django 1.7. 一个布尔值;如果为True,在执行该命令之前将检查整个Django项目是否有潜在的问题。...如果它创建对区域设置敏感的数据库内容,这种内容不应该包含任何转换(比如django.contrib.auth权限发生的情况),因为将区域设置变成与实际上默认的‘en-us’ 不同可能导致意外的效果。...AppCommand.handle_app_config(app_config, **options) 对app_config完成命令行的动作,其中app_config是AppConfig的实例,对应于在命令行上给出的应用标签

    70420
    领券