9、xadmin菜單分組管理

有的時候,咱們的菜單不少很雜,想要把菜單進行分組以方便管理,以下html

前一篇博文已經詳細講解了如何菜單自定義排序,自定義分組和排序其實寫法相似:app

要實現上面這個功能,分爲如下幾步:插件

一、 咱們須要定義一個變量用來肯定當前app屬於哪一個組,因此在每一個app所屬的apps.py中加一個變量 menu_name = "分組名" 以下:3d

二、咱們知道,xadmin中CommAdminView是用戶已經登陸後顯示的View,也是全部登錄後View的基礎類。htm

該View主要做用是建立了Xadmin的通用元素,例如:系統菜單,用戶信息等。插件能夠經過註冊該View來修改這些信息。blog

因此咱們能夠自頂一個一個類,裏面重寫 get_nav_menu 方法,加入咱們自定義的變量menu_cate,用於在html中分組使用排序

而後將咱們自定義的類註冊到xadmin中,xadmin.site.register(views.CommAdminView, 自定義類名)繼承

三、修改htmlget

查看CommAdminView源碼,咱們還能夠看到,它的基礎模板是base_site.html, 同時還指明menu_template = 'xadmin/includes/sitemenu_default.html'源碼

在base_site.html中,有個div是用來承載左側菜單欄的:

它裏面引用了menu_template,因此咱們直接重寫sitemenu_default.html便可,下面先寫了三個div容器,分別用於承載三個分組,裏面的內容由它的繼承者 sitemenu_accordion.html來加入。

而後在sitemenu_default.html的繼承者sitemenu_accordion.html中分別編寫咱們本身定義的block: navbar_md、navbar_md_forum 和 navbar_md_wechat

下面以navbar_md爲例,代碼以下:

循環全部的菜單,若是當前菜單的menu_cate和咱們分組的名稱相等,即歸爲一個組,其餘組亦然。

相關文章
相關標籤/搜索