Доступ к кортежу в шаблоне 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]}}'); Лучший ответ: Предполагая, что ваш код просмотра: t=[] t.extend([('a',1),('b',2),('c',3)]) (а не как указано в OP) {{ t.0.0

Вопрос: 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 }}

Оцените статью
Добавить комментарий