2
我有一个字典:Django的:模板和遍历字典
>>> some_dict
{1: ['String1', 'String2', 'String3','String4' ],
2: ['String1_2', 'String2_2', 'String3_2', 'String4_2' ],}
在我的模板,我想遍历在HTML这个字典和显示值。所以我发送这个字典从视图:
return render_to_response('tournament.html',
{.....
'some_dict' : some_dict,
'some_dict_range' : range(4),
.....
})
在tournament.html我试图迭代some_dict。我想得到应该看起来像这样的输出:
'String1', 'String2', 'String3','String4'
{% for iter1 in some_dict_range%}
{{some_dict.0.iter1}}<br>{% endfor %}
因此,我什么也没得到。 但是,当我试图得到同样的结果没有迭代器: some_dict.0.0,some_dict.0.1等我得到我需要的东西('String1','String2','String3','String4')。 当我试图查看“iter1”我得到正确的数字值:
{% for iter1 in some_dict_range%}
{{iter1}}<br> {% endfor %}
0,1,2 ... 为什么这不以这种方式工作?如果我在设计上错了,它应该是什么样子?我的意思是 - 迭代这个词典并在HTML模板中显示值的正确方法是什么?
我是对的 - some_dict.0.iter1。当我试图迭代“some_dict.0.1”,“some_dict.0.2”等 - 我得到我的价值 – Rusty 2012-07-29 11:40:06
如果你访问some_dict.0.X,你的字典必须有“0”作为一个关键,因为如果不是,你应该得到一个KeyError引发。你的例子正确吗? @JonClements是正确的,看看[这个](https://docs.djangoproject.com/en/dev/topics/templates/#variables)如果你不相信我们... – marianobianchi 2012-07-29 13:24:21
是的,这是我的错误 - 我有一个关键'0',而不是'1'。 Thx to @JonClements,他的解决方案非常完美 – Rusty 2012-07-29 14:15:51