前言
xadmin后台的菜單項是放到一個app下的,並且里面的排序是按字母a-z排序,有時候我們需要划分多個項,需要自定義菜單列表,可以通過重寫CommAdminView類實現。
xadmin后台提供了多個主題,可以通過use_bootswatch=True設置多個主題。
自定義菜單項
先定義get_site_menu方法,重寫CommAdminView里面的get_site_menu方法,並返回一個list(或元組),CommAdminView源碼如下
- site_title 左上角title內容
- site_footer 頁面底部@后面內容
- menu_style = "accordion" 菜單樣式默認折疊
- title: 顯示的菜單項
- icon: 顯示Font Awesome圖標,可以在官網上找http://www.fontawesome.com.cn/
- menus:顯示子菜單,可以是多個字典
- url: get_admin_url(name, *args, **kwargs) 便捷方法,方便的通過 name 取得 url,會加上 AdminSite.app_name 的 url namespace
# adminx.py
import xadmin
from xadmin import views
from .models import Student, Card
# 全局設置,最好放到adminx.py開頭位置
class GlobalSettings(object):
site_title = "開發平台" # title內容
site_footer = "yoyo" # 底部@后面
# menu_style = "accordion" # 菜單折疊
# 自定義菜單
def get_site_menu(self):
return [
{
'title': '自定義菜單',
'icon': 'fa fa-bars', # Font Awesome圖標
'menus':(
{
'title': 'Card表',
'icon': 'fa fa-bug',
'url': self.get_model_url(Card, 'changelist')
},
{
'title': 'a發郵件',
'icon': 'fa fa-envelope-o',
'url': self.get_model_url(Student, 'changelist'),
}
)
},
{
'title': 'Bug統計',
'icon': 'fa fa-bug',
'menus':(
{
'title': 'Bug表',
'icon': 'fa fa-bug',
'url': "https://www.cnblogs.com/yoyoketang/" # 自定義跳轉列表
},)
}
]
xadmin.site.register(views.CommAdminView, GlobalSettings)
頁面顯示效果
設置主題
bootswatch是一款基於bootstrap的匯集了多種風格的前端UI解決方案, 設置use_bootswatch可以選擇多個主題
import xadmin
from xadmin import views
class ThemeSetting(object):
'''主題設置'''
enable_themes = True # 使用主題
use_bootswatch = True # bootswatch是一款基於bootstrap的匯集了多種風格的前端UI解決方案
xadmin.site.register(views.BaseAdminView, ThemeSetting)
主題選項菜單