Django template层之json报文遍历总结

 

测试环境

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

 

 

 

 

模板2

 

 

模板3

 

 

 运行结果

 

 

 

 

模板4

 

 运行结果

 

 

 

 

 

 

模板5

 

 

运行结果

 

 

 

 

文章来源于网络 ,如有侵权请联系站长QQ61910465删除

本文版权归趣快排SEO www.SeogurUblog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ▶61910465