本篇将自定义可重用的一、二级菜单。
通过这篇文章,你能了解到:
- 定义一、二级菜单的思路
- 核心代码
前提
本篇是在自定义 RBAC组件 的基础上进行的补充,RBAC见~
一级菜单
思路:
在登陆验证中,我们需要将用户信息写入到session中,需要写入的信息有:is_login(登录状态)、permission(权限信息/该用户可访问的 url
地址)、menu_list(菜单信息)。
二级菜单
目标:
一级菜单做展示,二级菜单做跳转。
思路:
- 在一级菜单,我们是将菜单信息写在Permission表中的,但是对于二级菜单的话,写在Permission中就不太合适了,重新定义一个Menu表,这个表中有两个字段:title(一级菜单标题)、icon(图标)
- 定义了model之后,就可以在一级菜单的基础上进行改进。
1 | class Menu(models.Model): |
数据结构
1 | { |
实现如下:
1 | menu_dict = {} |