Язык шаблонов Django распаковывает - PullRequest
0 голосов
/ 30 мая 2018

У меня есть словарь, переданный (как часть другого объекта) языку шаблонов django.Объект, называемый poll, имеет атрибуты self.text и self.votes, где первый является строкой, а последний является диктатом.Диктовка выглядит следующим образом: {'a1': 45.92422502870264, 'a2': 53.50172215843857} Я пытаюсь перечислить каждый ярлык с сопровождающим его номером, используя следующее:

{% for l, x in poll.votes %}
<p>{{ l }} {{ x }}</p>
{% endfor %}

Джанго отвечает:

Exception Type: ValueError
Exception Value:    Need 2 values to unpack in for loop; got 3.

Я пытался.iteritems - Документы объясняют, что .iteritems не является правильным способом сделать это, но они не объясняют, каков правильный путь .

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Вы тоже можете сделать это:

{% for variable in poll %}
   {{ variable.name }} - {{ variable.votes }}
{% endfor %}
0 голосов
/ 30 мая 2018

Вы просто повторяете то же самое, что и в python, но в синтаксисе языка шаблонов (Djangos) Djangos

 {% for key, value in dictionary.items %}

Ваш poll.votes - это диктат, но вы итерируете не элементы, а ключив вашем коде.

Обзор дзиндзя можно найти здесь .Стоит отметить, что jinja - это не то, что использует django, но это удобно для сжатой ссылки, поскольку многие вещи одинаковы (jinja основан на DTL) вместо того, чтобы копаться в djangos docs.

Для Djangos tempaltes heres справочная документация

...