Django template層之json報文遍歷總結 by:授客 QQ:1033553122 測試環境 Win7 Django 1.11 實例 Views.py def home(request): home_page = 'website/pages/home.html' nav_menus = ...
Django template層之json報文遍歷總結
by:授客 QQ:1033553122
測試環境
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
運行結果