欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Dajngo-Xadmin 修改菜单摆放排序

程序员文章站 2022-03-28 19:01:34
问题: Xadmin 默认是读取了所有被注册到 xadmin 的模型生成对应的菜单!这个是没问题的 ,但是xadmin又对菜单做了 "通过菜单名称" 排序.英文状态下我们的排列至少是 a-z排列的,但是一到中文就乱了,完全不符合我们的要求. 解决办法: 要到达按照我们 在 django 的 sett ......

问题:

  Xadmin 默认是读取了所有被注册到 xadmin 的模型生成对应的菜单!这个是没问题的 ,但是xadmin又对菜单做了 "通过菜单名称" 排序.英文状态下我们的排列至少是 a-z排列的,但是一到中文就乱了,完全不符合我们的要求.

解决办法:

  要到达按照我们 在 django 的 settings.py 中 INSTALLED_APPS 中注册的顺序排列只需要在 Xadmin源码 (xadmin\view\base.py) 中找到 def get_nav_men 方法 中的 " nav_menu.sort(key=lambda x: x['title'])  " 将其注释就可以啦~

扩展:

  那么,如果我们需要将某一个自定义菜单加入到 已存在的某一个已存在的 菜单中成为其菜单,怎么做呢 ?

  方法:

    还是在刚刚的 get_nav_men  方法中找到  nav_menu = list(nav_menu.values()),  这里的 nav_menu 就是我们最终要加入到系统菜单中的数据  ,我们在下面进行对 nav_menu 数据自定义修改

     例如,我要在 默认的 '管理' 菜单下 加一个 '轮播图管理' 的子项:

      Dajngo-Xadmin 修改菜单摆放排序