2017-01-18 5 views
2

Я работаю над проектом фляги. В шаблоне Jinja есть проблема для меня в цикле for. Я хочу напечатать первый индекс первого индекса словаря. Выход newlist является:колба - шаблон jinja forloop увеличивающий индекс петли

{1: [{'uid': 407, 'color': red}, 
{'uid': 407, 'color': black}, 
{'uid': 407, 'color': white}], 2: 
[{'uid': 372, 'color': pink}, 
{'uid': 372, 'color': blue}, 
{'uid': 372, 'color': orange}], 3: 
[{'uid': 28, 'color': green}]} 

Я хочу, чтобы получить выход так:

{'uid': 407, 'color': red} 
{'uid': 407, 'color': black} 
{'uid': 407, 'color': white} 

{'uid': 372, 'color': pink} 
{'uid': 372, 'color': blue} 
{'uid': 372, 'color': orange} 

{'uid': 28, 'color': green} 

Как я могу изменить этот цикл, чтобы достичь этого вывод? Здесь я установил оба указателя вручную (newlist.1.1), как я могу правильно увеличить номер индекса?

{% for each in newlist %} 
    {{ newlist.1.1 }}<br> 
{% endfor %} 

ответ

4

Просто относиться к нему так, как вы бы рассматривать словарь за пределами шаблона, это точка шаблонов дзиндзя:

>>> newlist = {1: [{'uid': 407, 'color': 'red'}, {'uid': 407, 'color': 'black'}, {'uid': 407, 'color': 'white'}], 2: [{'uid': 372, 'color': 'pink'}, {'uid': 372, 'color': 'blue'}, {'uid': 372, 'color': 'orange'}], 3: [{'uid': 28, 'color': 'green'}]} 
>>> 
>>> for k in newlist : 
     for d in newlist[k]: 
      print(d) 


{'uid': 407, 'color': 'red'} 
{'uid': 407, 'color': 'black'} 
{'uid': 407, 'color': 'white'} 
{'uid': 372, 'color': 'pink'} 
{'uid': 372, 'color': 'blue'} 
{'uid': 372, 'color': 'orange'} 
{'uid': 28, 'color': 'green'} 

Таким образом, в шаблоне:

{% for k in newlist %} 
    {% for d in newlist[k] %} 
     {{ d }}<\br> 
    {% endfor %} 
    <\br> 
{% endfor %} 
+0

справа, спасибо вы. – niloofar