Django - simpleui 的 菜单配置

自定义菜单

system_keep 保留系统菜单

该字段用于告诉simpleui,是否需要保留系统默认的菜单,默认为False,不保留。 如果改为True,自定义和系统菜单将会并存

menu_display 过滤显示菜单和排序功能

该字段用于告诉simpleui,是否需要开启过滤显示菜单和排序功能。
默认可以不用填写,缺省配置为默认排序,不对菜单进行过滤和排序。
开启认为传一个列表,如果列表为空,则什么也不显示。列表中的每个元素要对应到menus里面的name字段

dynamic 开启动态菜单功能

该字段用于告诉simpleui,是否需要开启动态菜单功能。
默认可以不用填写,缺省配置为False,不开启动态菜单功能。
开启为True,开启后,每次用户登陆都会刷新左侧菜单配置。
需要注意的是:开启后每次访问admin都会重读配置文件,所以会带来额外的消耗。

menus说明

字段 说明
name 菜单名
icon 图标,参考element-ui和fontawesome图标
url 链接地址,绝对或者相对,如果存在models字段,将忽略url
models 子菜单,自2021.02.01+版本 支持最多3级菜单

例子

  1. import time
  2. SIMPLEUI_CONFIG = {
  3. 'system_keep': False,
  4. 'menu_display': ['Simpleui', '测试', '权限认证', '动态菜单测试'], # 开启排序和过滤功能, 不填此字段为默认排序和全部显示, 空列表[] 为全部不显示.
  5. 'dynamic': True, # 设置是否开启动态菜单, 默认为False. 如果开启, 则会在每次用户登陆时动态展示菜单内容
  6. 'menus': [{
  7. 'name': 'Simpleui',
  8. 'icon': 'fas fa-code',
  9. 'url': 'https://gitee.com/tompeppa/simpleui'
  10. }, {
  11. 'app': 'auth',
  12. 'name': '权限认证',
  13. 'icon': 'fas fa-user-shield',
  14. 'models': [{
  15. 'name': '用户',
  16. 'icon': 'fa fa-user',
  17. 'url': 'auth/user/'
  18. }]
  19. }, {
  20. # 自2021.02.01+ 支持多级菜单,models 为子菜单名
  21. 'name': '多级菜单测试',
  22. 'icon': 'fa fa-file',
  23. 'models': [{
  24. 'name': 'Baidu',
  25. 'icon': 'far fa-surprise',
  26. 'models': [
  27. {
  28. 'name': '爱奇艺',
  29. # 第四级就不支持了,element只支持了3级
  30. 'models': [
  31. {
  32. 'name': '电影',
  33. 'url': 'https://www.iqiyi.com/dianying/'
  34. }, {
  35. 'name': '电视剧',
  36. 'url': 'https://www.iqiyi.com/dianshiju/'
  37. },
  38. ]
  39. }, {
  40. 'name': '百度问答',
  41. 'icon': 'far fa-surprise',
  42. 'url': 'https://zhidao.baidu.com/'
  43. }
  44. ]
  45. }, {
  46. 'name': '内网穿透',
  47. 'url': 'https://www.wezoz.com',
  48. 'icon': 'fab fa-github'
  49. }]
  50. }, {
  51. 'name': '动态菜单测试' ,
  52. 'icon': 'fa fa-desktop',
  53. 'models': [{
  54. 'name': time.time(),
  55. 'url': 'http://baidu.com',
  56. 'icon': 'far fa-surprise'
  57. }]
  58. }]
  59. }

如果SIMPLEUI_CONFIG中存在menus字段,将会覆盖系统默认菜单。并且menus中输出的菜单不会受权限控制。