访问django模板中的元组

Raj*_*eev 23 django django-templates django-models django-views

 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}))
Run Code Online (Sandbox Code Playgroud)

如果我想访问访问django模板中的值t而不使用for循环我该怎么办.我尝试了以下它似乎没有工作

    alert('{{t[a]}}');
    alert('{{t[c]}}');
Run Code Online (Sandbox Code Playgroud)

Ofr*_*viv 45

假设您的视图代码是:

t=[]
t.extend([('a',1),('b',2),('c',3)])
Run Code Online (Sandbox Code Playgroud)

(而不是OP中所述)

{{ t.0.0 }}就像t[0][0]在Python代码中一样.这应该给你"a",因为它t.0是列表t的第一个元素,它本身是一个元组,然后另一个.0是元组的第一个元素.

{{ t.0.1 }} 将是1,依此类推.

但是在你的问题中,你正在创建一个元组,并尝试访问它,就像它是一个字典.

那就是问题所在.


小智 6

您可以通过dict() 函数将元组转换为 dict :

mydict = dict(t)
Run Code Online (Sandbox Code Playgroud)

然后在模板中您可以通过键访问项目,如下所示

{{ mydict|get_item:item.NAME }}
Run Code Online (Sandbox Code Playgroud)