• day71 菜单的排序 点击被选中


    菜单的排序:(给菜单设置权重,权重高的让他显示在上面)

    from django import template
    from django.conf import settings
    from collections import OrderedDict
    import re
    
    register = template.Library()
    
    
    @register.inclusion_tag('menu.html')
    def menu(request):
        menu_dict = request.session[settings.MENU_SESSION_KEY]
    
        order_dict=OrderedDict()
        ret=sorted(menu_dict,key=lambda x:menu_dict[x]['weight'],reverse=True)
    
        for i in ret:
            order_dict[i] = menu_dict[i]
    
        for r in order_dict.values():
            r['class']='hide'
            for i in r['children']:
                if re.match(r'^{}$'.format(i['url']),request.path_info):
                    i['class'] = 'active'
                    r['class']= ''
    
        return {'menu_list': order_dict.values()}

    menu.html文件

    <div class="multi-menu">
    
        {% for menu in menu_list %}
            <div class="item">
                <div class="title"><i class="fa {{ menu.icon }}"></i> {{ menu.title }}</div>
                <div class="body">
                    {% for child in menu.children %}
                        <a href="{{ child.url }}""> {{ child.title }} </a>
                    {% endfor %}
                </div>
            </div>
        {% endfor %}
    </div>
    menu.html标签

    点击后被选中

     

     自定义标签.rbac.py中 :

    from django import template
    from django.conf import settings
    from collections import OrderedDict
    import re
    
    register = template.Library()
    
    
    @register.inclusion_tag('menu.html')
    def menu(request):
        menu_dict = request.session[settings.MENU_SESSION_KEY]
    
        order_dict=OrderedDict()
        ret=sorted(menu_dict,key=lambda x:menu_dict[x]['weight'],reverse=True)
    
        for i in ret:
            order_dict[i] = menu_dict[i]
    
        for r in order_dict.values():
    
            for i in r['children']:
                if re.match(r'^{}$'.format(i['url']),request.path_info):
                    i['class'] = 'active'
    
    
        return {'menu_list': order_dict.values()}
    

      menu.html文件

    {#<div class="static-menu">#}
    
    {#{% for menu in menu_list %}#}
    {#    <a href="{{ menu.url }}"  class="{{ menu.class }}">#}
    {#        <span class="icon-wrap"><i class="fa {{ menu.icon }}"></i></span> {{ menu.title }}</a>#}
    {#{% endfor %}#}
    {#</div>#}
    
    
    <div class="multi-menu">
    
        {% for menu in menu_list %}
            <div class="item">
                <div class="title"><i class="fa {{ menu.icon }}"></i> {{ menu.title }}</div>
                <div class="body">
                    {% for child in menu.children %}
                        <a href="{{ child.url }}" class="{{ child.class }}"> {{ child.title }} </a>
                    {% endfor %}
                </div>
            </div>
        {% endfor %}
    </div>
    

      

  • 相关阅读:
    Go语言TCP/UDP Socket编程
    Go目录
    Go语言获取项目当前路径
    Mysql写入记录出现 Incorrect string value: 'xB4xE7xB1xCAxBCxC7‘错误?(写入中文)
    Erlang的Web库和框架
    erlang 资源
    Erlang基础2
    Erlang语言基础总结
    angular修改端口号port
    npm ERR! Cannot read property 'resolve' of undefined
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10574123.html
Copyright © 2020-2023  润新知