如何在for循环中使用django模板点表示法
我想在Django模板中获取一个字典的键值,并把它显示在页面上:
{% for dictkey in keys %}
<p> {{ mydict.dictkey }} </p>
{% endfor %}
(假设'keys'和'mydict'已经通过上下文传递到模板中)
Django可以渲染页面,但字典的内容却没有显示出来(显示“无效的模板变量”)
我猜问题在于,它试图用mydict['dictkey']来获取值,而不是用mydict[实际的键在变量dictkey中]。那怎么才能“逃避”这种行为呢?
谢谢!
更新: 根据收到的回答,我需要补充说明,我实际上是在寻找如何在for循环中进行键查找。这更能代表我的实际代码:
{% for key, value in mydict1.items %}
<p> {{ mydict2.key }} </p>
{% endfor %}
基本上,我有两个字典,它们的键是相同的,所以我不能对第二个字典使用items()这个技巧。
3 个回答
1
来自 http://docs.djangoproject.com/en/dev/ref/templates/builtins/#for
如果你需要访问字典里的项目,这个方法也很有用。比如说,如果你的上下文中有一个字典数据,下面的代码就可以显示字典的键和值:
{% for key, value in data.items %}
{{ key }}: {{ value }}
{% endfor %}
这里的关键是你需要调用 dict.items()
来获取 (键, 值)
这一对数据。
1
查看文档:http://docs.djangoproject.com/en/dev/ref/templates/builtins/#for
{% for key, value in data.items %}
{{ key }}: {{ value }}
{% endfor %}