Django动态显示菜单栏
1,models.py文件中,添加is_menu和icon
2,admin.py文件中,添加admin的展示内容,并且对其进行注册
登陆admin
添加权限以及用户和角色
3,在login函数中的permission_list中进行筛选权限为空是False。并添加部分字段
4, 设置session
5,在前端中获取session中的字典,生成菜单
6,增加active属性。增强客户体验。在中间件中将当前访问的url匹配之后的添加的session中增加class=“active”
前段的使用
7,将前段的代码写成inclusiontag
1, 先创建一个python包,包的名字为templatetags
2,创建一个rabc.py文件
3, 将之前写在中间件的获取menu_list代码写到下面中。return的直接是一个menu_list,前端中不需要在session中取了
4,前端中的使用,创建一个menu.html
5, 在模板中,导入rabc
目前的问题是,代码过于分散,不利于迁移重复使用。现在将有关rbac组件的东西放到一块去。
1,
2, 导入并使用,init_permission
3, 将中间件的内容移动到rbac中,在rbac就不需要动了,如果移动了,需要修改settins中的注册中间件的内容
4,将templatetags心动到rbac中
此时要注意: 在rbac(app)下创建一个templates文件。知识点:templates的查找顺序,现在全局下进行查找,找不到在进行局部的app下的template进行查找(根据settions中的app的注册顺序),防止与其他app写的同名文件发生冲突,所以在templates文件下在创建一个文件,将py文件放置到该文件下。
5,迁移模板中于菜单相关的样式
6, 模板中导入css样式