Django Admin之常用功能汇总
1.字段支持下拉搜索框
1)在admin中新增字段autocomplete_fields
autocomplete_fields = ("field1","field2") 注意:field1,field2字段需要的是外键字段
2)field1,field2字段需要在model中添加类属性search_fields
search_fields = ('name', ) 注意:name为field1或field2对应表中要进行搜索的字段
2.字段支持自定义颜色选择器
1)安装python扩展
pip install django-colorfield
生成静态文件
python manage.py collectstatic
2) 配置文件settings.py , 添加配置项
在INSTALLED_APPS中添加 INSTALLED_APPS = [ ... 'colorfield', ... ]
3) 在model.py中添加字段支持
from django.db import models from colorfield.fields import ColorField class ComputerRoom(models.Model): name = models.CharField(max_length=256,verbose_name = "名称") abbr = models.CharField(max_length=128, blank=True, null=True,verbose_name = "缩写") type = models.CharField(max_length=256,verbose_name='类型', choices=typeChoices) color = ColorField(default='#FF0000',verbose_name='显示颜色')
然后在Django后台打开对应的模块就可以看到颜色选择器了。
3.自定义菜单
左侧可折叠菜单是Simple UI系统默认菜单,根据已注册的应用和模型自动生成,其中父级菜单是App名,子菜单一般是所属App的各个模型名。SimpleUI甚至会自动为你分配默认图标,比如本例的tasks的应用使用了font-awsome的fa fa-tasks。在大多数情况下,Simple UI系统默认菜单不能满足需求,这时你就需要自定义菜单了,比如添加新的选项或给菜单选项分配新的图标。
修改settings.py, 添加如下代码:
SIMPLEUI_CONFIG = { # 是否使用系统默认菜单,自定义菜单时建议关闭。 'system_keep': False, # 用于菜单排序和过滤, 不填此字段为默认排序和全部显示。空列表[] 为全部不显示. 'menu_display': ['任务管理', '权限认证'], # 设置是否开启动态菜单, 默认为False. 如果开启, 则会在每次用户登陆时刷新展示菜单内容。 # 一般建议关闭。 'dynamic': False, 'menus': [ { 'app': 'auth', 'name': '权限认证', 'icon': 'fas fa-user-shield', 'models': [ { 'name': '用户列表', 'icon': 'fa fa-user', 'url': 'auth/user/' }, { 'name': '用户组', 'icon': 'fa fa-th-list', 'url': 'auth/group/' } ] }, { 'name': '任务管理', 'icon': 'fa fa-th-list', 'models': [ { 'name': '任务列表', # 注意url按'/admin/应用名/模型名小写/'命名。 'url': '/admin/tasks/task/', 'icon': 'fa fa-tasks' }, ] }, ] }
自定义菜单效果如下所示。我们更改了SimpleUI默认分配的图标。你还可以随意增减菜单选项并对其进行排序:
查找相关图标:https://fontawesome.com/v5.15/icons?d=gallery&p=2
参考:Django实战: 手把手教你配置Django SimpleUI打造美丽后台(多图) - 知乎 (zhihu.com)