Форум сайта python.su
Здравствуйте. Никак не могу понять где ошибка, подскажите. Django 1.5.1
Во вьюхе передаю словарь через context в шаблон.
#views
temp = {1: ‘111’, 2: ‘222’, 3: ‘333’}
context = {'temp': temp,
‘var’: 2,}
#template
<!– хочу получить значение 222 через var –>
{{ temp.2 }} <!– выводит 222 –>
{{ temp.var }} <!– не выводит. Обращение через ‘.’ идет сначала к ключу словаря ведь, но желаемый результат не получаю –>
Офлайн
в передаваемом вами контексте есть два ключа - temp и var. Поэтому когда в шаблоне идет {{temp}} то в контексте ищется ключ temp, а конструкция {{temp.var}} ищет внутри контекста сперва ключ temp а затем некий его атрибут (согласно правилам поиска). В вашем коде в temp действительно нет var, а вот просто {{var}} имеется.
Если вы не о том спрашиваете, то уточняйте подробнее.
Офлайн
моя цель в шаблоне получить значение словаря по ключу передаваемому через переменную var.
{{ temp.var }} // я понимаю что в словаре temp ищется ключ ‘var’, и поскольку не нашел такого ключа то ничего и не выводит. Но как сообщить django чтоб он искал не ключ ‘var’ а ключ со значением переменной var.
Вот аналог длинный и не красивый, путем прохода по словарю
#template
{% for key, value in temp.items %}
{% if key==var %}
{{value}} <!-- получил желаемый результат '222'-->
{% endif %}
{% endfor %}
Отредактировано Piton23 (Май 18, 2014 13:28:14)
Офлайн
Сделай фильтр get_key, делов то.
Офлайн