前言
django为了方便快速对数据库进行管理,或者快速搭建一个可用的web系统,内置了admin后台能力,用户可以通过ModelAdmin类提供的配置能力,快速实现一个web后台的创建,提供了一个快速的, 以模型为中心的web界面。
针对admin这块的管理,可以参见每一个版本的“管理站点”,比如3.1版本的如下
https://docs.djangoproject.com/zh-hans/3.1/
一、基础准备
在setting中要进行基础配置。
- django项目创建好之后,setting中会默认把django相关需要配置的内容进行预配置,主要包括下面的部分。
- 将 ‘django.contrib.admin’ 和它的依赖关系 —— django.contrib.auth、django.contrib.contenttypes、django.contrib.messages 和 django.contrib.session 添加到你的 INSTALLED_APPS 配置中。
- 在你的 TEMPLATES 配置中设置一个在 OPTIONS 的 ‘context_processors’ 选项中包含 django.template.context_processors.request、django.contrib.auth.context_processors.auth 和 django.contrib.messages.context_processors.messages 的 DjangoTemplates 后端:
- 如果你自定义了 MIDDLEWARE 设置,则必须包含 django.contrib.auth.middleware.AuthenticationMiddleware 和 django.contrib.messages.middleware.MessageMiddleware。
- 把管理的网址挂到你的 URLconf 里。
- 我们自己需要在setting中做哪些改变呢?
- 加入你自己对系统默认的User类进行了额外的继承扩展或者完全重新自己写了一个类,那么就需要在setting中将用户管理设置为自定义的类,配置的方法是:AUTH_USER_MODEL = ‘myapp.MyUser’
格式是app名字.model名字
- 加入你自己对系统默认的User类进行了额外的继承扩展或者完全重新自己写了一个类,那么就需要在setting中将用户管理设置为自定义的类,配置的方法是:AUTH_USER_MODEL = ‘myapp.MyUser’
二、admin自定义分类
1、区域划分
在admin后台的管理中,我们所看到的页面视图个人觉得可以将其分为几个区域
- admin总体信息:网站名字等
- 菜单区域
- list页面的按钮区域
- list页面的内容区域
- 对象表单
2、操作分类
结合上面四个区域页面,我个人按照我所碰到的各种需要进行扩展或者修订的类型,将其分为下面的几大类的自定义入口类型:
-
后台管理总体信息修改
-
list页面的按钮区域
- 对list区域增删按钮
- 对list区域搜索框和下拉框进行增删
-
对list页面的内容区域
- 对list区域增删显示字段
- 对list区域字段超链接修改
-
对象表单
- 按钮位置修改
- 按钮增删
- 表单的布局
- 新增时表单显示
- 修改时表单显示
-
权限关联:根据权限对2&3&4三部分进行个性化区分显示
- 我们在实际的生产中要实现对权限的自定义的话,其实可以将上面的各种信息都进行模型抽象,然后结合一整套完善的基础权限管理能力进行统一扩展。
后面的系列文章也将从操作分类分别进行总结。