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和咱们分组的名称相等,即归为一个组,其余组亦然。

相关文章
相关标签/搜索