zoukankan      html  css  js  c++  java
  • 左侧菜单权限组选择

    浏览目录

    注册菜单权限

     ''' 注册菜单权限'''
        # 查询当前登录用户的所有权限,按照url,分组组名,每个权限要做的操作展示,权限列表去重
        permissions = user.roles.all().values("permissions__url", "permissions__group__title", "permissions__action").distinct()
        print("permissions",permissions)
        menu_permission_list=[]
        for item in permissions:     #循环每个权限
            if item["permissions__action"]=="list":  #如果权限操作是List
                # 将权限url和权限分组名称以元组形式添加到menu_permission_list列表中
                menu_permission_list.append((item["permissions__url"],item["permissions__group__title"]))
            print("menu_permission_list:",menu_permission_list)
            # 将menu_permission_list注册在session中
            request.session["menu_permission_list"]=menu_permission_list  

    为了用户表和角色表同时继承一个模板,同时又能够使模板和数据统一继承,定义了inclusion_tag标签。

    自定义inclusion_tag标签

    自定义inclusion_tag的步骤

    • 在项目的app中创建名为templatetags的文件夹
    • 在templatetags的文件夹中创建自定义的my_tag.py文件
    • my_tag.py中编写自定义inclusion_tag

    from django import template
    
    register = template.Library()
    
    
    @register.inclusion_tag('menu.html')
    def get_menu(request):
        # 获取当前用户可以放到菜单栏中的权限
        menu_permission_list = request.session.get("menu_permission_list")
        return {"menu_permission_list": menu_permission_list}
    
    • 在templates文件夹中创建刚才注册的menu.html文件
    <div>
        {% for menu in menu_permission_list %}
            <p class="menu_btn"><a href="{{ menu.0 }}">{{ menu.1 }}</a> </p>
        {% endfor %}
    </div> 
    • 使用自定义my_tag前,首先在HTML页面中导入py文件 
    {% load my_tag %}
    {% get_menu request %}
    

      

      

  • 相关阅读:
    解决电脑启动桌面图标变乱
    多表查询
    windows安装rabbitmq踩坑实录
    springboot单元测试
    联想锁屏壁纸所在路径
    ArrayList数组扩容方式(基于jdk1.8)
    SpringCloud + Consul服务注册中心 + gateway网关
    springboot 文件上传及java使用post请求模拟文件上传
    kotlin + springboot启用elasticsearch搜索
    kotlin + springboot整合mybatis操作mysql数据库及单元测试
  • 原文地址:https://www.cnblogs.com/gaoya666/p/8964250.html
Copyright © 2011-2022 走看看