Django template层之json报文遍历总结

by:授客 QQ1033553122

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

测试环境

Win7

Django 1.11

 

实例

Views.py

def home(request):

    home_page = 'website/pages/home.html'

 

    nav_menus = {'menus':[]}

    nav_menus_queryset = LeftNavigation.objects.filter(parent_id=0).order_by('order').values()

 

    for menu in nav_menus_queryset:

        menu['sub_menus'] = []

        sub_nav_menus_queryset = LeftNavigation.objects.filter(parent_id=menu['id']).order_by('order').values()

        for sub_menu  in  sub_nav_menus_queryset:

            menu['sub_menus'].append(sub_menu)

 

        nav_menus['menus'].append(menu)

 

    return render(request, home_page, {'leftNavMenus': nav_menus})

 

 

 

说明:其中nav_menus的具体值如下

 

{

    "menus": [{

        "parent_id": 0,

        "url": "",

        "id": 1,

        "icon_style": "glyphiconglyphicon-cog",

        "sub_id": "collapse1",

        "sub_menus": [{

            "parent_id": 1,

            "url": "http: //www.baidu.com",

            "id": 2,

            "icon_style": "glyphiconglyphicon-cog",

            "sub_id": "",

            "order": 1,

            "menu_name": "项目管理1",

            "is_sub_open": 0

        }, {

            "parent_id": 1,

            "url": "http: //www.baidu.com",

            "id": 3,

            "icon_style": "glyphiconglyphicon-cog",

            "sub_id": "",

            "order": 5,

            "menu_name": "项目管理2",

            "is_sub_open": 0

        }],

        "order": 1,

        "menu_name": "项目管理",

        "is_sub_open": 1

    }, {

        "parent_id": 0,

        "url": "",

        "id": 40,

        "icon_style": "glyphiconglyphicon-cog",

        "sub_id": "collapse2",

        "sub_menus": [],

        "order": 1,

        "menu_name": "数据管理",

        "is_sub_open": 0

    }, {

        "parent_id": 0,

        "url": "",

        "id": 20,

        "icon_style": "glyphiconglyphicon-cog",

        "sub_id": "collapse2",

        "sub_menus": [{

            "parent_id": 20,

            "url": "http: //www.baidu.com",

            "id": 21,

            "icon_style": "glyphiconglyphicon-cog",

            "sub_id": "",

            "order": 1,

            "menu_name": "任务管理1",

            "is_sub_open": 0

        }],

        "order": 2,

        "menu_name": "任务管理",

        "is_sub_open": 0

    }]

}

 

template

以下是不同的前端模板代码下,访问页面结果

模板1

Django template层之json报文遍历总结 Python 第1张

 

 

 

 

模板2

Django template层之json报文遍历总结 Python 第2张

 

 

模板3

 Django template层之json报文遍历总结 Python 第3张

 

 运行结果

 Django template层之json报文遍历总结 Python 第4张

 

 

 

模板4

Django template层之json报文遍历总结 Python 第5张

 

 运行结果

Django template层之json报文遍历总结 Python 第6张

 

 

 

 

 

 

模板5

Django template层之json报文遍历总结 Python 第7张

 

 

运行结果

Django template层之json报文遍历总结 Python 第8张

 

 

 

 
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄