路径导航 :
        1.怎样设置需要登录但又不需要验证权限的路径 :
                在settings中定义一个列表,列表中以正则的方式放入需要登录但无需验证的权限的项.在中间件中进行循环访问,如有符合的项,立即return即可,但要注意中间件中定义的其它必须项,可设置为None.
request.current_menu_id = None

request.breadcrumb_list = [{'title': '首页', 'url': '/index/'}]
# 登陆后不需要权限
for i in settings.NO_PERMISSION_LIST:
if re.match(i, url):
return
        2.设置路径导航的思路 : 
                在中间件中定义一个列表存放访问的路径,并在前端动态渲染出来.
                知识点 : 动态生成页面 : 自定义标签 inclusion_tag;将存在session中的menu以字典的形式存放,方便在中间件中取出二级菜单的路径和普通权限的路径.

for permission in permission_dict.values():

    if re.match(r'^{}$'.format(permission['url']), url):
pid = permission.get('pid')
id = permission.get('id') if pid: #存在pid,是普通权限
request.current_menu_id = pid
request.breadcrumb_list.append( #添加二级菜单路径
{'title': permission_dict[str(pid)]['title'], 'url': permission_dict[str(pid)]['url']})
request.breadcrumb_list.append({'title': permission['title'], 'url': permission['url']}) #添加普通权限路径 else: #pid不存在,表示访问的是二级菜单
request.current_menu_id = id
request.breadcrumb_list.append({'title': permission['title'], 'url': permission['url']}) #添加二级菜单路径 return
        3.通过自定义标签动态渲染导航栏 :
@register.inclusion_tag('breadcrumb.html')     #inclusion中的内容 : 将字典传入breadcrumb.html,注意传入参数
def breadcrumb(request):
return {'breadcrumb_list': request.breadcrumb_list}
        4.前端通过if判断设置导航栏结尾是否能被重复选择
<div>
<ol class="breadcrumb no-radius no-margin" style="border-bottom: 1px solid #ddd;"> {% for breadcrumb in breadcrumb_list %}
{% if forloop.last %}
<li class="active">{{ breadcrumb.title }}</li>
{% else %}
<li><a href="{{ breadcrumb.url }}">{{ breadcrumb.title }}</a></li>
{% endif %}
{% endfor %}
</ol>
</div>
 

django创建路径导航的更多相关文章

  1. 用django创建一个项目

    首先你得安装好python和django,然后配置好环境变量,安装python就不说了,从配置环境变量开始 1.配置环境变量 在我的电脑处点击右键,或者打开 控制面板\系统和安全\系统 -> 左 ...

  2. 利用django创建一个投票网站(一)

    这是教程的原始链接:http://django-intro-zh.readthedocs.io/zh_CN/latest/part1/ 创建你的第一个 Django 项目, 第一部分 来跟着实际项目学 ...

  3. Django创建基本流程

    Django创建基本流程 1.创建工程:django-admin startproject 工程名 2.创建应用:python manage.py startapp 应用名 3.激活项目:修改sett ...

  4. Django-权限管理与路径导航

    1.url权限管理 设计表 1.设计表 系统一共有多少个路径: 有哪些用户使用: 用户在公司的角色: 对角色进行权限分配(什么样的角色可以访问什么样的路径): 2.往表中添加数据,分配角色权限 3.登 ...

  5. Django创建数据库常用字段及参数

    Django创建数据库常用字段及参数 常用字段 1.models.AutoField 自增列= int(11) 如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列 ...

  6. Django创建工程项目以及工作原理

    一.Django 创建工作项目 1.创建 North 工程项目 (1)使用CMD命令行,切换到指定路径 django-admin.py startproject north (2)使用pycharm创 ...

  7. django创建项目

    django创建项目 安装django pip install django==1.9 Note: C:\Python34\Scripts\pip.exe 创建项目 django-admin star ...

  8. iOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用

    一.pickerView简单使用 1.UIPickerViewDataSource 这两个方法必须实现 // 返回有多少列 - (NSInteger)numberOfComponentsInPicke ...

  9. 用CSS变形创建圆形导航

    http://www.w3cplus.com/css3/building-a-circular-navigation-with-css-transforms.html 本文由陈毅根据SARA SOUE ...

随机推荐

  1. wordPress设计网页实践

    我希望能设计出世界上最美的画面! 首先进入你自己建立的网站http://localhost:8079/Frank,如上图所示.注意,编辑页面时,要可以上外网,否则wordPress的插件会下载出错! ...

  2. HTTP最常见的请求头

    HTTP最常见的请求头如下: l         Accept:浏览器可接受的MIME类型: l         Accept-Charset:浏览器可接受的字符集: l         Accept ...

  3. STM32固件库模板下载以及固件库学习方法

    固件库模板下载 固件库模板新建过程: 下载我们上节的固件库文件 电脑新建一个文件夹命名为Fwlib-Template,在此文件夹下分别新建DOC Libraries Project User 这四个文 ...

  4. 【C#】上机实验一

    1.开发一个控制台应用程序,根据提示从键盘获取一个华氏温度,请转换并输出对应的摄氏温度. using System; namespace Project { class Program { publi ...

  5. 2019牛客多校四 E. triples II (容斥)

    大意: 给定$n,a$, 求$n$个$3$的倍数, $or$和为$a$的方案数. 简单容斥题 可以求出$f_{x,y}$表示所有$3$的倍数中, 奇数位不超过$x$个$1$, 偶数位不超过$y$个$1 ...

  6. HTML 禁止复制文字

    因为本人平时喜欢看网络小说,但是喜欢看的文通过正经网站或者app都需要收费,让人很是不爽,所以...总之,百度网盘上资源很多.但是问题来了,这些资源肯定不会是作者自己流出的,也不应该是网站或app流出 ...

  7. (十一)Activitivi5之流程控制网关:连线

    一.案例 1.1 需求 我们希望如果是重要情况才需要班主任审批,否则班长审批就行. 1.2 案例 当流程走到“班长审批”任务节点的时候,如果是一般情况,则如下: /** * 完成任务 */ @Test ...

  8. VS App_Code文件夹下的类文件不能直接被调用的解决方法

    如下图所示,新建的类不能直接使用,会显示报错,检查命名空间什么的,未果 通过百度搜索,发现这么一篇文章:https://blog.csdn.net/younghaiqing/article/detai ...

  9. WPF 自定义一个控件,当点击按钮是触发到ViewModel(业务逻辑部分)和Xaml路由事件(页面逻辑部分)

    #region - 用于绑定ViewModel部分 - public ICommand Command { get { return (ICommand)GetValue(CommandPropert ...

  10. opengl 笔记

    1. 本函数可以禁用多边形正面或背面上的光照.阴影和颜色计算及操作,消除不必要的渲染计算是因为无论对象如何进行旋转或变换,都不会看到多边形的背面.用GL_CULL_FACE参数调用glEnable和g ...