Зацикливание произвольно вложенных данных в шаблоне Jinja - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть следующий список диктов, где у каждого диктанта может быть ключ 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'
    }]
}]

1 Ответ

2 голосов
/ 09 апреля 2019

Используйте параметр recursive в цикле for. Теперь вызов специальной переменной loop повторит цикл с вложенным содержимым.

<ul>
    {% for item in data recursive %}
    <li>{{ item.name }}
    {% if item.children %}
        <ul>{{ loop(item.children) }}</ul>
    {% endif %}</li>
    {% endfor %}
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...