Вложенный цикл в шаблоне проходит только раз в 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)