Django模板和列表字典

时间:2015-09-09 17:24:47

标签: python django dictionary django-templates

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显示整个字典,但我的要求是只显示一个可能非常大的字典中的几个条目。

1 个答案:

答案 0 :(得分:0)

<ul>
    {% for k, v in dict.items %} # instead of iterating keys, iterate dict
        {% if k in keys %} # if key found in keys
            <li>
                {{ k }}, {{ v|length }}: [{% for val in v %} {{ val }},{% endfor %}]
            </li>
        {% endif %}
    {% endfor %}
</ul>