在Django管理主页上添加简单漂亮的快捷方式。
1.安装
pip install django-admin-shortcuts
2在settings.py注册django-admin-shortcuts
INSTALLED_APPS = [
'admin_shortcuts',
'django.contrib.admin',
.......
]
3.添加ADMIN_SHORTCUTS设置
ADMIN_SHORTCUTS = [ { 'title': 'Authentication', 'shortcuts': [ { 'title': 'Groups', 'url_name': 'admin:auth_group_changelist', 'has_perms': ['example.change_group', 'example.delete_group'], }, { 'title': 'Add user', 'url_name': 'admin:auth_user_add', 'test_func': 'example.utils.has_perms_to_users', }, ] },]
-
app_name是将用于 URL 反转的管理应用的名称。
-
url_name可选是将覆盖的直接链接url
-
url_extra是在 URL 末尾附加额外的内容(例如用于预过滤管理视图的 GET 数据)
-
title是快捷方式的标题快捷方式。如上所述,此函数也可以选择接受一个参数。
-
test_func是项目中返回布尔值的函数的路径。如果为 True,则显示快捷方式。此函数也可以选择接受一个参数。
-
count_new是项目中返回有趣内容的函数的路径(例如所有产品的计数或所有挂单的计数)。该函数可以选择接受一个参数,即当前的 Django 对象。
-
has_perms是表示显示快捷方式所需的内置管理员权限的字符串列表。
-
icon可选的是 Font Awesome Solid https://fontawesome.com/icons?d=gallery\&s=solid 图标类
设置示例
ADMIN_SHORTCUTS = [ { 'shortcuts': [ { 'url': '/', 'open_new_window': True, }, { 'url_name': 'admin:logout', }, { 'title': 'Users', 'url_name': 'admin:auth_user_changelist', 'count': 'example.utils.count_users', }, { 'title': 'Groups', 'url_name': 'admin:auth_group_changelist', 'count': 'example.utils.count_groups', 'has_perms': ['example.change_group', 'example.delete_group'], }, { 'title': 'Add user', 'url_name': 'admin:auth_user_add', 'test_func': 'example.utils.has_perms_to_users', 'url_name': 'admin:auth_user_add', 'has_perms': 'example.utils.has_perms_to_users', }, ] }, { 'title': 'CMS', 'shortcuts': [ { 'title': 'Pages', 'url_name': 'admin:index', }, { 'title': 'Files', 'url_name': 'admin:index', }, { 'title': 'Contact forms', 'icon': 'columns', 'url_name': 'admin:index', 'count_new': '3', }, { 'title': 'Products', 'url_name': 'admin:index', }, { 'title': 'Orders', 'url_name': 'admin:index', 'count_new': '12', }, ] },]ADMIN_SHORTCUTS_SETTINGS = { 'show_on_all_pages': True, 'hide_app_list': True, 'open_new_window': False,}
最终效果
可选设置
ADMIN_SHORTCUTS_SETTINGS = { 'show_on_all_pages': False, 'hide_app_list': False, 'open_new_window': False,}
作用说明:
-
show_on_all_pages显示所有管理页面上的快捷方式
-
hide_app_list折叠应用列表
-
open_new_window使所有快捷方式在新窗口中打开
自定义外观
更改CSS覆盖模板页面templates/admin_shortcuts/base.css
要更改漂亮的图标,可以指定ADMIN_SHORTCUTS_CLASS_MAPPINGS的引用
项目github:https://github.com/alesdotio/django-admin-shortcuts