LINUX.ORG.RU

Python, Jinja2, nested for

 


1

1

Что-то туплю. Есть 3 списка, в каждом 2 элемента. Нужно построить таблицу, 2 строки, 3 колонки. Циклы итерируются не 2 раза, а 6.

{% for date in date_list %}
    {% for name in name_list %}
        {% for theme in theme_list %}
            <tr><td>{{ date }}</td><td>{{ name }}</td><td>{{ theme }}</td></tr>
        {% endfor %}
    {% endfor %}
{% endfor %}

попробуй добавить дополнительные переменные до цикла

rikimaru ()
{% for date, name, theme in zip(date_list, name_list, theme_list) %}
    <tr><td>{{ date }}</td><td>{{ name }}</td><td>{{ theme }}</td></tr>
{% endfor %}
anonymous ()
Ответ на: комментарий от Gregon

в прямом у тебя переменные date, name и theme существую только в цикле, объяви их до цикла и сунь в а <tr><td>{{ date }}</td><td>{{ name }}</td><td>{{ theme }}</td></tr> убери

//это же flask?

rikimaru ()
Ответ на: комментарий от rikimaru

А ничего, что число строк заранее неизвестно будет? Да, это фласк. переменные и должны быть в цикле.

Gregon ()

Сделай zip на стороне питона и итерируйся в jinja2 по полученному списку.

ei-grad ★★★★★ ()

А почему приведенный в стартпоте код не работал? Не вижу никаких причин для этого.

anonymous ()
Ответ на: комментарий от anonymous

Он отработал, но по не ясной для меня причине построилась таблица не на 2 строки, а на 6. То есть каждый из 3 for почему-то итерировал не только указанный ему список, а все 3.

Gregon ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.