Вопрос: t=[] t.append((«a»,1)) t.append((«b»,2)) t.append((«c»,3)) return render_to_response(t.html, context_instance=RequestContext(request, {‘t’:t}))
Если я хочу получить доступ к значению t в шаблонах django, не используя цикл for, как я могу это сделать. Я пробовал следующее и, похоже, не работает
alert(‘{{t[a]}}’); alert(‘{{t[c]}}’); Лучший ответ:
Предполагая, что ваш код просмотра:
t=[] t.extend([(‘a’,1),(‘b’,2),(‘c’,3)])
(а не как указано в OP)
{{ t.0.0 }} как t[0][0] в коде Python. Это должно дать вам “а”, потому что t.0 – это первый элемент списка t, который сам является кортежем, а затем еще один .0 является первым элементом кортежа.
{{ t.0.1 }} будет равно 1 и т.д.
Но в вашем вопросе вы создаете кортеж и пытаетесь получить к нему доступ, как если бы он был dict.
Это проблема.
Ответ №1
Вы можете преобразовать свой кортеж в dict через функция dict():
mydict = dict(t)
И затем в шаблоне вы можете получить доступ к элементам по ключу, например здесь:
{{ mydict|get_item:item.NAME }}