Шаблон Django с дицитонарием списков

Используя django, я передаю словарь списков в качестве контекста для моего шаблона. Словарь структурирован следующим образом:

weather = {
        'temp' : temp,
        'time' : time,
        'pop' : pop
    }

Temp, time и pop - это списки одинаковой длины с каждым индексом этих списков, идущим вместе. То есть temp[1], time[1] и pop[1] идут вместе, а temp[2], time[2] и pop[3] и так далее.

Я хотел бы отобразить эти значения следующим образом:

temp[1]
time[1]
pop[1]
temp[2]
time[2]
pop[2]
.
.
.
temp[y]
time[y]
pop[y] #y is the length of the lists

Я пытался сделать это, создав цикл for в моем шаблоне, который выглядит следующим образом:

{%for x in weather%}
   <p>
      <span>{{weather.temp.x}}</span>
      <br>
      <span>{{weather.pop.x}}</span>
      <br>
      <span>{{weather.time.x}}</span>
      <br>
   </p>
{%endfor%}

Но все, что это делает - это пустые строки. Не могли бы вы мне помочь?

For x in weather будет просто перебирать списки и закончится после третьего списка, поэтому я подозреваю, что вам нужен другой подход, так как вам нужно собрать данные в соответствующие группы, а шаблоны не подходят для такой фактической работы.

Предполагая три списка, все одинаковой длины, можно застегнуть их в параллельные списки

views.py

temp = [1,2,3]
time = [4,5,6]
pop =  [7,8,9]

weather=zip(temp,time, pop)

А затем в своем шаблоне выведите их в читабельном виде

{% for temp, time, pop in weather %}
    {{temp}}<br> 
    {{time}}<br>
    {{pop}}<br>
{% endfor %}

Это должно дать вам результат:

1
4
7
2
5
8
3
6
9
Вернуться на верх