Django自带admin管理后台的使用
一、admin后台管理
-
django提供了比较完善的后台管理数据库的接口,可供开发过程中调用和测试使用
-
django会搜集所有已注册的模型类,为这些模型类提拱数据管理界面,供开发者使用
说白了就是低成本访问数据库等后台数据
当然首先需要的是超级管理员账号
python manage.py createsuperuser #在项目根目录下
user,Email,password,password(again)#依次输入完以上信息即可创建
权限讲解
-
有效:用户是否是活跃的,反选就是删除了
-
人员状态:决定人员是否可以登入这个网站 ✔是职员、×是用户
-
超级用户状态:知名该用户缺省的所有权限
还包括对每个模型类的增删改查
一个部门可以类似于组,组内用户往往有相同的权限,还可以对个人针对性的指定权限,也就是组与个人权限可以独立
步骤一般是—创建组(必要的话)—创建用户—定状态—定组—定权限—基本信息输入
注册自定义模型类
步骤如下:
若要自己定义的模型类也能在/admin后台管理界中显示和管理,需要将自己的类注册到后台管理界面注册步骤:
-
在应用app中的admin.py中导入注册要管理的模型models类,如:from.models import 自定义模型类
-
调用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了
Comments NOTHING