У меня есть Dict:Django: шаблоны и перебрать Словаре
>>> some_dict
{1: ['String1', 'String2', 'String3','String4' ],
2: ['String1_2', 'String2_2', 'String3_2', 'String4_2' ],}
В моем шаблоне я хочу перебрать этого Dict и отображения значений в HTML. Поэтому я отправил этот dict из представления:
return render_to_response('tournament.html',
{.....
'some_dict' : some_dict,
'some_dict_range' : range(4),
.....
})
В турнире.html я пытаюсь перебрать some_dict. Я хочу получить вывод, который должен выглядеть так:
'String1', 'String2', 'String3','String4'
{% for iter1 in some_dict_range%}
{{some_dict.0.iter1}}<br>{% endfor %}
И в результате я ничего не получаю. Но когда я пытаюсь получить такой же результат без итератора: some_dict.0.0, some_dict.0.1 и т. Д. Я получаю то, что мне нужно ('String1', 'String2', 'String3', 'String4'). И когда я пытаюсь просмотреть значения «Iter1» я получить правильные цифры:
{% for iter1 in some_dict_range%}
{{iter1}}<br> {% endfor %}
0, 1, 2 ... Почему это не работает таким образом? И если я ошибаюсь в дизайне этого, как он должен выглядеть? Я имею в виду - какой правильный способ перебирать эти значения dict и display в html-шаблоне?
Я был прав - some_dict.0.iter1. Когда я пытаюсь выполнить итерацию «some_dict.0.1», «some_dict.0.2» и т. Д. - я получаю свои значения – Rusty
Если вы получаете доступ с помощью some_dict.0.X, словарь должен иметь «0» в качестве ключа, потому что если нет, вы должны получить KeyError поднял. Правильно ли ваш пример? @JonClements прав, взгляните на [это] (https://docs.djangoproject.com/en/dev/topics/templates/#variables), если вы не верите нам ... – marianobianchi
Да, это мой ошибка - у меня есть ключ «0», а не «1». Thx to @JonClements, его решение отлично работает – Rusty