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>
    

      

  • 相关阅读:
    20165319第五周java学习笔记
    20165319 20165335 结对学习创意照
    20165215 结对编程——四则运算第二周
    20165215 2017-2018-2 《Java程序设计》第八周学习总结
    2017-2018-2 20165215 实验二 Java面向对象程序设计
    20165215 结对编程——四则运算第一周
    20165215 2017-2018-2 《Java程序设计》第7周学习总结
    20165215 2017-2018-2 《Java程序设计》第6周学习总结
    20165215 实验一 Java开发环境的熟悉
    20165215 2017-2018-2 《Java程序设计》第5周学习总结
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10574123.html
Copyright © 2011-2022 走看看