三级菜单渲染

def menu_data(request):
    # 主菜单
    menus = []
    # 二级菜单
    second_level_menu = []
    # 三级菜单
    three_level_menu = []

    # 方法

    k = -1  # ****
    for i in get_menu:
        get_second_level_menu = MenuManager.get_second_level_menu(i.id)
        menus.append(i)
        k += 1
        second_level_menu.append(get_second_level_menu)
        three_level_menu.append([])  # ****
        for j in second_level_menu[k]:
            get_three_level_menu = MenuManager.get_three_level_menu(j.id)
            three_level_menu[k].append(get_three_level_menu)


    print menus
    print second_level_menu
    print three_level_menu
------------------------------------------------
打印结果:
[<Menu: 主菜单1>, <Menu: 主菜单2>, <Menu: 主菜单3>]

[[<Menu:二级菜单1_1>,<Menu:二级菜单1_2>,<Menu:二级菜单1_3>],[<Menu:二级菜单2_1>,<Menu:二级菜单2_2>],[<Menu:二级菜单3_1>,<Menu:二级菜单3_2>]]

[[[<Menu:三级菜单1_1_1>,<Menu:三级菜单1_1_2>],[<Menu:三极菜单1_2_1>,<Menu:三极菜单1_2_2>],[<Menu:三极菜单1_3_1>]],[[<Menu:三极菜单2_1_1>,<Menu:三极菜单2_1_2>],[<Menu:三极菜单2_2_1>,<Menu:三极菜单2_2_2>]],[[<Menu:三极菜单3_1_1>,<Menu:三极菜单3_1_2>],[<Menu:三极菜单3_2_1>,<Menu:三极菜单3_2_2]]]

这里写图片描述

以上是从数据库中取出的数据,现在需要html渲染

<li class="grid" style="display: inline;"><a class="color1" href="index.html">首页</a></li>



<li class="active grid" style="display: inline;"><a class="color2" href="#">主菜单1</a>

<div class="megapanel" style="display: none; opacity: 1;">
<div class="row">

<div class="col1">
<div class="h_nav">
<h4>二级菜单1_1</h4>
<ul>
<li><a href="women.html">三极菜单1_1_1</a></li>
<li><a href="women.html">三极菜单1_1_2</a></li>
<li><a href="women.html">三极菜单1_1_3</a></li>

</ul>
</div>
</div>

<div class="col1">
<div class="h_nav">
<h4>二极菜单1_2</h4>
<ul>
<li><a href="women.html">三极菜单1_2_1</a></li>
<li><a href="women.html">三极菜单1_2_2</a></li>
<li><a href="women.html">三极菜单1_2_3</a></li>

</ul>
</div>
</div>
<div class="col1">
<div class="h_nav">
<h4>二极菜单1_3</h4>
<ul>
<li><a href="women.html">三极菜单1_3_1</a></li>
<li><a href="women.html">三极菜单1_3_2</a></li>

</ul>
</div>
</div>
</div>
<div class="row">
<div class="col2"></div>
<div class="col1"></div>
<div class="col1"></div>
<div class="col1"></div>
<div class="col1"></div>
</div>
</div>
</li>

渲染方法

a = -1
    f_m_t = ''
    for i in menus:
        f_m_t += '<li class="active grid" style="display: inline;"><a class="color2" href="#">'+str(i)+'</a><div class="megapanel" style="display: none; opacity: 1;"><div class="row">'
        a += 1
        b = -1
        s_m_h = ''
        for j in second_level_menu[a]:
            s_m_h += '<div class="col1"> <div class="h_nav"> <h4>'+str(j)+'</h4> <ul>'
            b += 1
            t_m_h = ''
            for k in three_level_menu[a][b]:
                t_m_h += '<li><a href="women.html">'+str(k)+'</a></li>'
            t_m_h += '</ul> </div> </div>'
            s_m_h += t_m_h
        s_m_h += '</div>'
        f_m_t += s_m_h

    html = f_m_t
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忆枫717

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值