Шаблон 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