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样式

 

posted @ 2018-10-09 22:29  猴里吧唧  阅读(2626)  评论(0)    收藏  举报