zoukankan      html  css  js  c++  java
  • 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>
    

      

  • 相关阅读:
    final 和 static
    EL表达式
    strusts2request,session取得
    Double的精度问题
    隐藏软件盘(个人因为好用的方法)
    ListView没有分割线怎么办?
    自定义ActionBar完全覆盖系统的
    保存图片的工具类
    Intent传递list<bean>集合
    Android取得图库图片的具体地址
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10574123.html
Copyright © 2011-2022 走看看