首页
学习
活动
专区
工具
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

    2K60

    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

    69320

    Django+boostrap 美化admin后台操作

    工具:Pycharm,Django1.11.9. 1.下载django_admin_bootstrapped pip install django-admin-bootstrapped 2.打开django...项目目录下settings.py文件,如图添加内容,必须放在django本身django.contrib.admin前面。...django_admin_bootstrapped/templates/admin/base.html 中找到”Recent actions”,修改为”最近动作”。 ?...补充知识:几步带你实现django中引入bootstrap,后端程序员有福了 bootstrapflask框架中引入很简单,但是由于django是一个封闭式框架,所以在运用时候, 有点小麻烦,不过也就几步事情.../css/里面 然后我们写一个自己index.html(注意别搞混了) 里面只需要写 {% extends ‘base.html’%}(这是对页面的继承) ok,运行django, django

    1.4K20

    Django admin 一些有用设置

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

    2.6K70

    django admin后管定制-显示字段实例

    先说需求: 1、django 自带了admin后管,如果我们需要使用,只需把我们定义models注册即可; 2、但如果只是简单注册,那显示很简单,根本看不到每行记录描述信息,全部以model object...自定义用户表和使用admin来管理数据库 django 自定义用户表 使用django操作数据库时,django中生成默认User表,其中字段已经可以满足我们日常需求。...db_table = “user” 自定义表名为user Django 使用admin来管理数据库中内容 Django提供了自带admin功能,可以很方便管理网站。...admin.py中注册模型: from django.contrib import admin #引入要注册模型 from music.models import Music from music.models...以上这篇django admin后管定制-显示字段实例就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.9K20
    领券