• 九、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和我们分组的名称相等,即归为一个组,其他组亦然。

  • 相关阅读:
    Windows下PHP开启mcrypt扩展和SSL(OpenSSL)扩展支持
    MyBatis 学习笔记
    试用百度云计算平台
    TCP三次握手及四次挥手详细图解
    Java开发中的23种设计模式详解
    Extjs4.1.0_从入门到精通
    SQLite3命令操作大全
    带你了解 HBase 数据模型和 HBase 架构
    让数据库无惧灾难,华为云GaussDB同城双集群高可用方案正式发布!
    论文阅读丨神经清洁: 神经网络中的后门攻击识别与缓解
  • 原文地址:https://www.cnblogs.com/fiona-zhong/p/9647986.html
Copyright © 2020-2023  润新知