python測試開發django-44.xadmin自定義菜單項


前言

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)

主題選項菜單


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM