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

  • 相关阅读:
    SQL注入之Sqli-labs系列第八篇(基于布尔盲注的注入)
    数据宽度
    进制
    cors跨域和jsonp劫持漏洞 和 同源策略和跨域请求解决方案
    kali linux Python 黑客编程1 开发环境初始化
    selenium之元素定位-xpath
    Python+Selenium基础入门及实践
    任意用户密码重置的10种姿势(看视频记的笔记)
    Python—requests模块详解
    Ubantu16.04 改root用户登陆
  • 原文地址:https://www.cnblogs.com/fiona-zhong/p/9647986.html
Copyright © 2011-2022 走看看