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)