Подтвердить что ты не робот

Доступ к кортежу в шаблоне 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]}}');
4b9b3361

Ответ 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 }}