文章目录
第一节:站点后台管理
对工程项目数据进行日常的管理工作,不可能事事依赖程序员进行代码操作,应该人人都可以操作,不需要代码,会管理即可。因此Django中有默认集成了后台数据管理页面,通过简单的配置就可以实现模型后台的Web控制台;
管理界面通常是给系统管理员使用的,用来完成数据的输入、删除、查询等工作;
Django默认已经集成了后台管理,如果没有集成,自己在settings中的INSTALLED_APPS
添加‘django.contrib.admin’
应用即可,即在settings.py中插入以下代码:
INSTALLED_APPS = [
...
'django.contrib.admin',
...
]
超级用户(管理员)的创建
# 创建超级用户
python manage.py createsuperuser
# 配置管理员名称
root
# 配置管理员邮箱
xxxxx @ xxx.com
# 配置管理员密码(密码格式必须8位且非纯数字组成)
root123456
# 登陆后台管理系统
127.0.0.1:8000/admin
设置管理界面的语言和时区
注册原数据模型(表名)
注:此时注册好的数据据模型返回的只是一个对象,对象内容由Model的 '__str__' 决定!
创建个性化管理类并注册模型
现在能有我们想要的表了,但是显示的内容或许不是我们想要的,或许我们想要更多的信息,或都过滤掉某些信息,此时便需要个性化管理。
参考规则(可追ModelAdmin查看)
功能 | 参考代码 |
---|---|
显示字段 | list_display = () |
过滤字段 | list_filter = () |
搜索字段 | search_fields = () |
分页 | list_per_page = xx |
每页最大数 | list_max_show_all = xx |
排序规则 | ordering |
设置显示标题 | xxx.short_description |
分组显示参考
fieldsets = (
('班级',{fields:('sgrade')}),
('姓名',{fields:('sname')})
)
布尔值定制参考:
def function(self):
if self.xxxx:
return 'A'
else:
return 'B'
例:
扫描二维码关注公众号,回复:
4926753 查看本文章
插入管理类时默认同时插入数据
一对多关系中,我们在插入一个群体时希望也可设置同时插入个体内容,这样不需再分别进行个体的操作,非常方便,就可以用些方法进行设置
例:本案例中在插入班级时设置同时也可插入学生
第二节:修改站点后台管理样式
修改跳转主页和标题内容
可重写的属性参考
可修改部位 | 参考代码 | 备注 |
---|---|---|
头部标题 | site_header |
|
页面名称 | site_title |
|
跳转主页 | site_url |
默认’ / ’ |
1、继承AdminSite,重写站点内容并自定义站点对象
2、修改路由的新站点对象
执行结果
自定义后台页面样式
1、找出系统模板位置并复制出来
django/contrib/admin/templates/admin/xxx.html
2、创建相对应的工程目录并复制模板
注意:Django是以就近原则寻找admin下的模板
3、添加自己的代码样式
例:简单修改登录的颜色样式