使用Django自带的admin来完成管理后台的开发
配置admin页面
1、创建blog的管理后台
blog/admin.py
。。。。。。
$ python manage.py createsuperuser 创建管理
$ python manage.py runserver 测试
2、创建Post的管理后台
blog/admin.py
。。。。。。
以上通过继承admin.ModelAdmin,就能实现这个Model的增、删、改、查页面的配置。
3、创建comment的管理后台
4、创建config的管理后台
现在的问题是页面展示还不够友好,因此我们需要进行更多配置。
根据需求定制admin
有两种操作页面的方法:
一是数据批量展示和操作的列表页;
二是数据增加或者修改的编辑(新增)页;
1、定义list页面
作者只能看到自己的文章
2、编辑页面的配置
哪些东西可以被定制
- 按钮位置;save_on_top
- 哪些字段需要被用户填写,哪些不用填写甚至不用展示; fields或者fieldset,exclude不展示字段
- 页面的字段展示顺序是不是能调整,展示位置是否能调整;
- 输入框的样式;
3、自定义静态资源引入
页面是Django生成的,但提供了接口添加CSS和JS脚本
4、自定义Form
form变量
5、在同一页面编辑关联数据
inlines变量
6、定制site
大部分情况下,一个site对应一个站点。也可以定制site来实现一个系统对外提供多套admin后台的逻辑。
7、admin的权限逻辑以及SSO登录
集成登录的逻辑只需要参考Django默认的Setting的配置AUTHENTICATION_BACKENDS是如何实现的即可,并且Django也提供了详细的文档,告诉你如何定制第三方认证系统。
抽取Admin基类
编写基类,方便维护
记录操作日志
LogEntry模块会创建一条变更日志几率。ModelAdmin内部提供了两个方法,log_addition和log_change。
查询某个对象的变更