drf day10
simpleui
1.前言:
因为Django自带一个admin后台管理,所以很多公司都喜欢用这个基于这个二次开发,但是原生的admin后台太难看。所以就有些大佬写了美化插件
SIMPLEUI
一个第三方美化admin后台管理的插件,国内比较流行,界面好看,基于vue写的
2.使用simpleui开发简单的增删改查:
1.安装一下simpleui
2.创建一下要用到的数据表,可以提前把双下str,还有表的verbose_name写一下
3.项目配置文件的注册那里,在最上面注册一下simpleui,然后去admin.py文件注册一下表
4.这样就看到admin后台界面已经大变样了,套了层好看的皮肤
官方教程文档:
https://simpleui.72wo.com/docs/simpleui/quick.html
自定义管理页面显示的字段名
在admin中写
@admin.register(Book)
class Book(admin.ModelAdmin):
list_display = ('nid', 'name', 'price', 'publish_date', 'publish')
# 然后模型层的字段的verbose_name记得一定要写
# 注意多对多字段不能添加进来
自定义增加按钮
# 增加自定义按钮
actions = ['have_fun', 'lets_dance']
def have_fun(self, request, queryset):
print('我被点击了')
# 显示的文本,与django admin一致
have_fun.short_description = '测试按钮'
# icon,参考element-ui icon与https://fontawesome.com
have_fun.icon = 'fas fa-audio-description'
# 指定element-ui的按钮类型,参考https://element.eleme.cn/#/zh-CN/component/button
have_fun.type = 'danger'
# 给按钮追加自定义的颜色
have_fun.style = 'color:black;'
def lets_dance(self, request, queryset):
pass
lets_dance.short_description = '复制员工'
3.其他定制化
系统左侧定制层级菜单
系统配置文件里配置一下
menus是这个样子[{},{},{}]
SIMPLEUI_CONFIG = {
'system_keep': False,
'menu_display': ['图书管理系统', '用户权限认证', '大屏展示'], # 开启排序和过滤功能, 不填此字段为默认排序和全部显示, 空列表[] 为全部不显示.
'dynamic': True, # 设置是否开启动态菜单, 默认为False. 如果开启, 则会在每次用户登陆时动态展示菜单内容
'menus': [
{
'name': '图书管理系统', # 这个是一个app,所以下面要指定一下app的名字!
'app': 'app01',
'icon': 'fas fa-code', # 图标
'models': [
{ # 这是二级菜单可以是一个列表包一个个字典,就是点进去的
'name': '图书',
'icon': 'fa fa_user',
'url': 'app01/book/' # 这是django内置的管理book的地址
},
{
'name': 'publish',
'icon': 'fa fa_user',
'url': 'app01/publish/' # 这是django内置的管理publish的地址
}]
},
{
'name': '用户权限认证',
'app': 'auth',
'icon': 'fas fa-user-shield', # 图标
'models': [{ # 这是二级菜单可以是一个列表包一个个字典,就是点进去的
'name': '用户',
'icon': 'fa fa_user',
'url': 'auth/user/' # 这是django内置的管理auth user表的地址
}]
},
{
'name': '大屏展示',
'app':'app01',
'icon': 'fas fa-github', # 图标
'url': '/show/'
}
]
}
左侧多级菜单镶嵌页面
自己去写一个fbv路由,写一个页面,这样就可以在左边菜单栏中点一下进入自己写的网页
{
'name': '大屏展示',
'app':'app01',
'icon': 'fas fa-github', # 图标
'url': '/show/' # 这个就是配置的路由
}
按钮二次确认
have_fun.confirm = '你是否执意要点击这个按钮?'
自定义LOGO(包括首页)
SIMPLEUI_LOGO = 'https://avatars2.githubusercontent.com/u/13655483?s=60&v=4'
超级管理员凌驾于RBAC之上,所以admin管理员是无敌的