Доступ к кортежу в шаблоне django
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]}}');
Ответы
Ответ 1
Предполагая, что ваш код просмотра:
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.
Это проблема.
Ответ 2
Вы можете преобразовать свой кортеж в dict через функция dict():
mydict = dict(t)
И затем в шаблоне вы можете получить доступ к элементам по ключу, например здесь:
{{ mydict|get_item:item.NAME }}