九、xadmin菜單分組管理


有的時候,我們的菜單很多很雜,想要把菜單進行分組以方便管理,如下

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

要實現上面這個功能,分為以下幾步:

1、 我們需要定義一個變量用來確定當前app屬於哪個組,所以在每個app所屬的apps.py中加一個變量 menu_name = "分組名" 如下:

2、我們知道,xadmin中CommAdminView是用戶已經登錄后顯示的View,也是所有登陸后View的基礎類。

該View主要作用是創建了Xadmin的通用元素,例如:系統菜單,用戶信息等。插件可以通過注冊該View來修改這些信息。

所以我們可以自頂一個一個類,里面重寫 get_nav_menu 方法,加入我們自定義的變量menu_cate,用於在html中分組使用

然后將我們自定義的類注冊到xadmin中,xadmin.site.register(views.CommAdminView, 自定義類名)

3、修改html

查看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和我們分組的名稱相等,即歸為一個組,其他組亦然。

 


免責聲明!

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



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