我有以下词典列表,其中每个词典可以有一个children
键,以及其他词典列表。可以将其任意嵌套在更深的位置。如何在Jinja中对此进行循环以输出嵌套列表?
[{
'id': '1',
'name': 'Level 1',
'children': [{
'id': '11',
'name': 'Level 1.1'
}, {
'id': '12',
'name': 'Level 1.2'
}, {
'id': '13',
'name': 'Level 1.3',
'children': [{
'id': '131',
'name': 'Level 1.3.1'
}]
}]
},
{
'id': '2',
'name': 'Level 2',
'children': [{
'id': '21',
'name': 'Level 2.1'
}]
}]
答案 0 :(得分:2)
在for
循环中使用recursive
选项。现在调用特殊的loop
变量将重复嵌套内容的循环。
<ul>
{% for item in data recursive %}
<li>{{ item.name }}
{% if item.children %}
<ul>{{ loop(item.children) }}</ul>
{% endif %}</li>
{% endfor %}
</ul>