Django自带Admin后台的使用

酥酥 发布于 2021-09-18 932 次阅读


Django自带admin管理后台的使用

一、admin后台管理

  • django提供了比较完善的后台管理数据库的接口,可供开发过程中调用和测试使用

  • django会搜集所有已注册的模型类,为这些模型类提拱数据管理界面,供开发者使用

说白了就是低成本访问数据库等后台数据

当然首先需要的是超级管理员账号

python manage.py createsuperuser #在项目根目录下
user,Email,password,password(again)#依次输入完以上信息即可创建

权限讲解

  • 有效:用户是否是活跃的,反选就是删除了

  • 人员状态:决定人员是否可以登入这个网站 ✔是职员、×是用户

  • 超级用户状态:知名该用户缺省的所有权限

还包括对每个模型类的增删改查

一个部门可以类似于组,组内用户往往有相同的权限,还可以对个人针对性的指定权限,也就是组与个人权限可以独立

步骤一般是—创建组(必要的话)—创建用户—定状态—定组—定权限—基本信息输入

注册自定义模型类

步骤如下:

若要自己定义的模型类也能在/admin后台管理界中显示和管理,需要将自己的类注册到后台管理界面注册步骤:

  1. 在应用app中的admin.py中导入注册要管理的模型models类,如:from.models import 自定义模型类

  2. 调用admin.site.register方法进行注册,如:admin.site.register(自定义模型类)

admin后台显示数据的时候是通过定义在model中的_str_方法来实现的,如果models.py中没有就只能显示对象序列了

二、admin模型管理器类

作用:
为后台管理界面添加便于操作的新功能说明(插件化开发):
后台管理器类须继承自django.contrib.admin里的ModelAdmin类

使用方法

1.在<应用app>/admin.py里定义模型管理器类
class XXXXManager (admin.ModelAdmin):
2.绑定注册模型管理器和模型类
from django contrib import admin
from models import *
admin.site.register(YYYY,XXXXManager)#绑定YYYY类与XXXXManager,也包含了注册工作

在这个class XXXXManager中可以定义许多要在后天显示的内容比如

  • list_display=[‘列名’,….]#这里在后台显示的时候是使用了verbose_name

  • list_display_links=[‘列名’]#链接到修改页面的超链接放在指定列名,依赖list_display

  • list_filter=[‘列名’]#指定列成为筛选条件

  • source_fields=[‘列名’]#指定列名可搜索相关行模糊匹配

  • list_editable=[‘列名’]#依赖list_display且不是list_display_links,指定列变得可编辑了

再谈Meta类

除了db_table功能还有如下功能

通过Meta内嵌类定义模型类的属性,用法如下:
class Book(models.Model):
title = charField(…..)

class Meta:

  • db_table =’数据表名该模型所用的数据表的名称。(设置完成后需要立马更新同步数据库)

  • verbose_name =’单数名’给模型对 的一个易于理解的名称(单数),用于显示在/admin管理界面中,默认会有一个s

  • verbose_name_plural =’复数名’
    该对象复数形式的名称(复数),用于显示在/admin管理界,就不会有s了