1.左侧菜单点击显示 就是在点击的时候保留点击的功能

方法。

1.加入新的字段,pid来判断

 class Permission(models.Model):
"""
权限表
"""
title = models.CharField(max_length=32, verbose_name='标题')
url = models.CharField(max_length=32, verbose_name='权限')
menu=models.ForeignKey("Menu",on_delete=models.CASCADE,null=True)
name=models.CharField(max_length=32,verbose_name='url别名',default="")
pid=models.ForeignKey('self',on_delete=models.CASCADE,null=True,verbose_name="父权限")

models

2.写入数据

3.在中间件添加

         request.breadcrumb =[
{
"title" :"首页",
"url" :"/"
},
]
for item in permission_list:
reg ="^%s$" %item["url"]
ret =re.search(reg ,current_path)
if ret:
show_id =item["pid"] or item["id"]
request.show_id =show_id

中间件

根据pid和pk判断,通过request。show-id传递到 过滤器

4.在过滤器中通过是否有

 @register.inclusion_tag("rbac/menu.html")
def get_menu_styles(request):
permission_menu_dict = request.session.get("permission_menu_dict")
print("permission_menu_dict", permission_menu_dict) for val in permission_menu_dict.values():
for item in val["children"]:
val["class"] = "hide"
# /payment/
# /payment/edit/4/
# ret=re.search("^{}$".format(item["url"]),request.path)
if request.show_id == item["pk"]:
val["class"] = "" return {"permission_menu_dict": permission_menu_dict}

过滤器

面包屑

1.在中间件中找到渲染在页面的的字典

         request.breadcrumb =[
{
"title" :"首页",
"url" :"/"
},
]
for item in permission_list:
reg ="^%s$" %item["url"]
ret =re.search(reg ,current_path)
if ret:
show_id =item["pid"] or item["id"]
request.show_id =show_id # 确定面包屑列表
if item["pid"]:
ppermission =Permission.objects.filter(pk=item["pid"]).first()
#加入两个字典用extend
request.breadcrumb.extend(
[{
"title" :ppermission.title,
"url" :ppermission.url,
} ,{
"title": item["title"],
"url": request.path
} ,# 子权限字典
] )
else:
request.breadcrumb.append(
{
"title" :item["title"],
"url" :item["url"]
}
)
return None

中间件

             <ol class="breadcrumb no-radius no-margin" style="border-bottom: 1px solid #ddd;">
{% for item in request.breadcrumb %}
<li><a href="{{ item.url }}">{{ item.title }}</a></li>
{% endfor %}
</ol>

layout中的渲染表签

django 权限设置 左侧菜单点击显示,面包屑的更多相关文章

  1. React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)

    最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...

  2. django权限之二级菜单

    遗漏知识点 1.构建表结构时,谁被关联谁就是主表,在层级删除的时候,删除子表的时候,主表不会被删除,反之删除主表的话,字表也会被删除, 使用related_name=None   反向查询,起名用的 ...

  3. django权限二(多级菜单的设计以及展示)

    多级权限菜单设计级标题栏 我们现在只有数据展示,要进入其他url还需要手动的输入路径,非常的麻烦,所以我们要设计 一个导航栏以及侧边多级菜单栏,这个展示是通过stark组件的设计的增删改查页面,而 每 ...

  4. 基于Jquery UI的autocompelet改写,自动补全控件,增加下拉选项,动态设置样式,点击显示所有选项,并兼容ie6+

    Jquery UI的autocompelete改写 注意:实现功能,除了原版的自动补全内容外,增加一个点击显示所有选项,样式能动态设置. 加载数据的来源为后台数据库读取. 具体代码如下: 引用 从官方 ...

  5. 【共享单车】—— React后台管理系统开发手记:权限设置和菜单调整(未完)

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  6. django 权限设置

    关于权限: 首先明确权限是为了限制其他访问的url 通过在models使之关联的表再通过关联表的权限来permissions的url 来检测url的访问 一. 需要三个类五张表 from django ...

  7. vue三级路由显示+面包屑

    问题一:如何让三级路由内容显示显示在一级路由页面 可以说是我点级二级路由导航的时候是不发生跳转的,但还要去动态的生成面包屑 const routes = [{ path: '/', name: 'Ho ...

  8. django 权限设置-菜单显示

    问题:在用户登录后,如何只显示出用户权限的菜单呢?需要设置显示菜单权限 1.为了显示菜单,需要在models权限上添加is_menu(手动判断是否是查看)的icon(图标字符串) 在rbac中录入另一 ...

  9. layui实现左侧菜单点击右侧内容区显示

    https://segmentfault.com/a/1190000014617129

随机推荐

  1. [LeetCode] 382. Linked List Random Node 链表随机节点

    Given a singly linked list, return a random node's value from the linked list. Each node must have t ...

  2. [LeetCode] 234. Palindrome Linked List 回文链表

    Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false ...

  3. JAVA开发者大会-Spring Cloud网关分享

    新书购买:单本75折包邮

  4. 安装Oracle 11g时遇到“【INS-13001】此环境不满足最低配置”的问题解决

    一.问题如下: win10一般容易出现这个问题,可能是版本兼容的关系.  二.解决方法: 在Oracle 11g解压出的文件夹下寻找cvu_prereq.xml文件: 路径:database\stag ...

  5. 动图+源码,演示 Java 中常用数据结构执行过程及原理

    ​阅读本文大概需要 3.7 分钟. 作者:大道方圆 cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想 ...

  6. 【网络知识之二】HTTP协议

    HTTP协议(Hypertext Transfer Protocol,超文本传输协议),一种无状态的.应用层的.以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系 ...

  7. GC分析工具使用-gceacy分析堆栈

    gceasy是一款在线的gc分析工具.试用一下分析jstack的日志 1.jstack -l 3539 > 3539.stack 2.打包成zip文件 3.上传https://gceasy.io ...

  8. canal

    https://github.com/alibaba/canal/wiki/QuickStart https://github.com/alibaba/canal/releases/download/ ...

  9. Oracle逻辑结构学习笔记

    数据库(Database)由若干表空间(Tablespace)组成,表空间(Tablespace)由若干段(Segment)组成,段(Segment)由若干区(Extent)组成,区(Extent)又 ...

  10. 初识Go语言--(1)环境安装

    1.安装包下载:https://golang.google.cn/dl/ 2. 一直点击下一步进行安装 3.安装后查看版本及帮助信息