Вложенный цикл в шаблоне проходит только раз в Django

Я пытаюсь создать таблицу в шаблоне, используя циклы.

view.py:

def main_page(request):
    groups = CurrentGroup.objects.all();
    classes = Class.objects.all();

    numbers = [1, 2, 3, 4, 5, 6]
    times = ["8:00-9:35", "9:45-11:20", "12:20-13:55", "14:05-15:40", "16:20-17:55", "18:05-19:40"]

    data = {
        "timetable": zip(numbers, times),
        "classes": classes,
        "groups": groups
    }

    return render(request, 'index.html', context=data);

index.html (фрагмент шаблона):

{% for i in '123456'|make_list %}
{% for number, time in timetable %}
    <tr>
    <td>{{number}}</td>
    <td>{{time}}</td>
    {% for group in groups %}
    {% if group.course == 1 %}
        <td>
            <select>
            {% for class in classes %}
            {% if class.group_attitude_id == 6 %}
                <option>{{class.class_name}}</option>
            {% endif %}
            {% if group.group_attitude == class.group_attitude %}
                <option>{{class.class_name}}</option>
            {% endif %}
            {% endfor %}
            </select>
        </td>
        {% endif %}
        {% endfor %}
    </tr>
{% endfor %}
{% endfor %}

Почему-то внутренний цикл {% for number, time in timetable %} проходит только один раз. При этом внешний цикл вполне работает и создает новые строки, если их писать до вложенного цикла. Как мне сделать так, чтобы вложенный цикл проходил все 6 раз, как и должен?

Как работают итераторы в Python? Функция zip создает итератор, который позволяет перебрать элементы один раз

"timetable": zip(numbers, times)

Вот пример

a = zip([1, 2, 3], [4, 5, 6])

print('FIRST')
for i in a:
    print(i)
print('SECOND')
for i in a:
    print(i)
Вернуться на верх