Django模板和列表字典的一部分

2024-10-02 22:29:33 发布

您现在位置:Python中文网/ 问答频道 /正文

在Django中,我想在列表字典中显示一些条目。在

我的背景是:

keys = ['coins', 'colors']
dict = {'colors':['red', 'blue'],
        'animals':['dog','cat','bird'],
        'coins':['penny','nickel','dime','quarter'] } 

模板代码:

^{pr2}$

我想看看:

* coins,4: [penny, nickel, dime, quarter,]
* colors,2: [red, blue,]

但实际上我看到的是键,但没有值:

* coins,0: []
* colors,0: []

注意:我也尝试了dict.{{k}}而不是{},但是正如预期的那样,在模板呈现中出现了一个解析错误。在基本列表正常工作之后,我将去掉后面带forloop.last的逗号。在

从列表字典中显示选定值的秘诀是什么?在

{从一个很大的字典到一个很大的问题,可能只显示一个很大的字典条目。在


Tags: django模板列表字典条目bluereddict
2条回答
<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>

问题(正如您所怀疑的那样)是dict.k被计算为dict['k'],其中“k”不是字典中的有效键。请尝试使用dict.items迭代每个项对,只显示您关心的键的结果:

<ul>{% for k, v in dict.items %}
        {% if k in keys %}
            <li>
            {{ k }}, {{ v|length }}: [{% for val in v %} {{ val }},{% endfor %}]
           </li>
        {% endif %}
    {% endfor %}
</ul>

相关问题 更多 >