django 权限设置 左侧菜单点击显示,面包屑
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 权限设置 左侧菜单点击显示,面包屑的更多相关文章
- React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)
最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...
- django权限之二级菜单
遗漏知识点 1.构建表结构时,谁被关联谁就是主表,在层级删除的时候,删除子表的时候,主表不会被删除,反之删除主表的话,字表也会被删除, 使用related_name=None 反向查询,起名用的 ...
- django权限二(多级菜单的设计以及展示)
多级权限菜单设计级标题栏 我们现在只有数据展示,要进入其他url还需要手动的输入路径,非常的麻烦,所以我们要设计 一个导航栏以及侧边多级菜单栏,这个展示是通过stark组件的设计的增删改查页面,而 每 ...
- 基于Jquery UI的autocompelet改写,自动补全控件,增加下拉选项,动态设置样式,点击显示所有选项,并兼容ie6+
Jquery UI的autocompelete改写 注意:实现功能,除了原版的自动补全内容外,增加一个点击显示所有选项,样式能动态设置. 加载数据的来源为后台数据库读取. 具体代码如下: 引用 从官方 ...
- 【共享单车】—— React后台管理系统开发手记:权限设置和菜单调整(未完)
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
- django 权限设置
关于权限: 首先明确权限是为了限制其他访问的url 通过在models使之关联的表再通过关联表的权限来permissions的url 来检测url的访问 一. 需要三个类五张表 from django ...
- vue三级路由显示+面包屑
问题一:如何让三级路由内容显示显示在一级路由页面 可以说是我点级二级路由导航的时候是不发生跳转的,但还要去动态的生成面包屑 const routes = [{ path: '/', name: 'Ho ...
- django 权限设置-菜单显示
问题:在用户登录后,如何只显示出用户权限的菜单呢?需要设置显示菜单权限 1.为了显示菜单,需要在models权限上添加is_menu(手动判断是否是查看)的icon(图标字符串) 在rbac中录入另一 ...
- layui实现左侧菜单点击右侧内容区显示
https://segmentfault.com/a/1190000014617129
随机推荐
- ASP.NET Core 中的 Main 方法
ASP.NET Core 中的 Main 方法 在 ASP.NET Core 项目中,我们有一个名为Program.cs的文件.在这个文件中,我们有一个public static void Main( ...
- [LeetCode] 871. Minimum Number of Refueling Stops 最少的加油站个数
A car travels from a starting position to a destination which is target miles east of the starting p ...
- [LeetCode] 772. Basic Calculator III 基本计算器之三
Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...
- [LeetCode] 662. Maximum Width of Binary Tree 二叉树的最大宽度
Given a binary tree, write a function to get the maximum width of the given tree. The width of a tre ...
- [LeetCode] 617. Merge Two Binary Trees 合并二叉树
Given two binary trees and imagine that when you put one of them to cover the other, some nodes of t ...
- 【Arch安装】
[Arch安装]不完整,凭记忆补充 1,制作安装介质(请跳转链接:https://www.archlinux.org/download/) 2,从UEFI模式启动后,按照官方WIKI向导操作(http ...
- Manjaro Linux安装后第一件事
环境:Manjaro KDE 使用中科大源 USTC Mirror 当然也可以勾选所有中国镜像源 谷歌加上云pinyin拼音输入法,不亚于搜狗 fcitx-qt5 kcm-fcitx (confi ...
- Spring Boot 知识笔记(整合Redis)
一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- C# HTTP系列7 HttpWebRequest.Method属性
系列目录 [已更新最新开发文章,点击查看详细] HttpWebRequest.Method属性,获取或设置请求的方法.用于联系 Internet 资源的请求方法. 默认值为 GET. Syst ...
- for...in 、for...of 、forEach 的区别
无论是for…in还是for…of语句都是迭代一些东西.它们之间的主要区别在于它们的迭代方式. 1.for…in 语句以原始插入顺序迭代对象的可枚举属性.2.for…of 语句遍历可迭代对象定义要迭代 ...