【发布时间】:2015-12-05 18:59:53
【问题描述】:
在 Django 中,我想在列表字典中显示一些条目。
我的上下文是:
keys = ['coins', 'colors']
dict = {'colors':['red', 'blue'],
'animals':['dog','cat','bird'],
'coins':['penny','nickel','dime','quarter'] }
模板代码:
<ul>{% for k in keys %}
<li>{{ k }}, {{ dict.k|length }}: [{% for v in dict.k %} {{ v }}, {% endfor %}]
{% endfor %}</ul>
我想看看:
* coins,4: [penny, nickel, dime, quarter,]
* colors,2: [red, blue,]
但我实际看到的是键但没有值:
* coins,0: []
* colors,0: []
注意:我也尝试了dict.{{k}} 而不是dict.k,但正如预期的那样,这只是在模板渲染中给出了解析错误。在基本列表正常工作后,我将用forloop.last 去掉结尾的逗号。
显示列表字典中选定值的秘诀是什么?
问题django template and dictionary of lists 显示整个字典,但我的要求是只显示可能非常大的字典中的几个条目。
【问题讨论】:
-
本质上,Django 让在模板中使用
dict并以任何正常方式访问变得不必要的痛苦。你说得对,dict.k查找不起作用,因为它正在寻找文字k属性而不是模板变量的值。对于这个用例,我建议您编写自己的自定义标签或过滤器来完成这项工作。
标签: python django dictionary django-templates