Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录

1.创建MySQL数据库 moderate 表 和 moderate_log(储存记录) 表

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

 

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

2.Django 映射

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

 Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

 

(1)inspectdb 创建的表

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

 Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

(2) 复制红色的框框的内容,粘贴到 models.py 文件

可以加下面的代码或者不加也行,加的话要映射一下

verbose_name = "Moderate"   # 首页列表的显示名称
verbose_name_plural = verbose_name  # 列表页和详情页的显示名称
Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

 

 

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

(3) 映射一下

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

3.在 admin.py 文件 编写代码(核心代码)

from django.contrib import admin
# from  你自己的项目.models import *
from book_MS.models import *
# 日期  可以选择加或者不加
# from django.utils import timezone


@admin.register(Moderate)
# admin.site.register(要写的表)  与  @admin.register(要写的表)  功能是一样的
class ModerateAdmin(admin.ModelAdmin):
    """
        *MySQL数据库moderate表:id, 名字, 内容,是否通过, 是否已审核
        ‘id‘, ‘name‘, ‘incident‘, ‘status‘, ‘check‘
    """
# listdisplay设置要显示在列表中的字段(id字段是Django模型的默认主键)
    list_display = (‘name‘, ‘incident‘, ‘status‘, )
    # list_per_page设置每页显示多少条记录,默认是10条
    list_per_page = 10
    # list_filter过滤指定的字段
    list_filter = (‘name‘, )

    # 修改admin页面actions的信息
    actions = [‘mak_pub‘, ‘mak_pub1‘]

    # 判断通过的
    def mak_pub(self, request, queryset):
        # 获取当前用户的名字
        us = request.user
        # 打印通过的数据
        for i in queryset.filter():
            # print(i.id)
            # 创建str,如果要加时间的话,就加上下面的代码
            # str = ‘{} {}更改了Moderate表的id为{}的信息:已通过,审核成功!‘.format(timezone.now(), us, i.id)
            str = ‘{}更改了Moderate表的id为{}的信息:已通过,审核成功!‘.format(us, i.id)
            # 插入数据到Log表中
            ModerateLog.objects.create(record=str)

        # 更新状态和审核
        rows_upb = queryset.update(status="1", check="1")
        # 如果获取的数是1,则执行下面代码
        if rows_upb == 1:
            message_bit = "1个视频"
        else:
            message_bit = "%s 个视频" % rows_upb
        # 通过多少的数据,显示到admin页面上
        self.message_user(request, "%s 已经通过." % message_bit)
    # 更改Action的内容为通过
    mak_pub.short_description = "通过"

    # 判断未通过的
    def mak_pub1(self, request, queryset):
        # 获取当前的用户
        us = request.user
        # 打印未通过的数据
        for i in queryset.filter():
            print(i)
            # 创建str
            str = ‘{}更改了Moderate表的id为{}的信息:未通过,审核成功!‘.format(us, i.id)
            # 插入数据到Log表中
            ModerateLog.objects.create(record=str)
        # 更新状态和审核
        rows_upb = queryset.update(status="0", check="1")
        # 如果获取的数是1,则执行下面代码
        if rows_upb == 1:
            message_bit = "1个视频"
        else:
            message_bit = "%s 个视频" % rows_upb
        # 通过多少的数据,显示到admin页面上
        self.message_user(request, "%s 拒绝通过." % message_bit)
    # 更改Action的内容为通过
    mak_pub1.short_description = "未通过"

    # 重写已经审核过的数据,超级管理员不会通过
    def get_queryset(self, request):
        # 获取当前表所有的数据
        qs = super().get_queryset(request)
        # 判断是否未超级管理员,如果是就显示所有(已审核和未审核)的信息,不是就显示未审核的信息
        if request.user.is_superuser:
            return qs
        return qs.filter(check=0)
Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录

4.登入 admin 后台管理

(1)先登入超级管理员,创建管理员,然后给管理员的查看和修改 moderate 表 和 moderate_log(储存记录) 表的权限

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

(2) 记得勾上职员状态,否则无法登陆 

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

 

 5.登入刚刚创建的管理员Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

 6.添加数据测试一下,到MySQL数据库手动输入几条数据

 7.效果

(1)点击通过或者未通过,执行后会隐藏,只有超级管理员才能看见,并且会记录到 moderate_log(储存记录)表中

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录?

Django 通过 admin 操作 MySQL数据库 ,审核功能加储存记录

上一篇:MySQL之视图与触发器


下一篇:MySQL的Connection-Control介绍