django模板访问循环中的多个词典

时间:2013-12-03 20:48:00

标签: django dictionary django-templates

我有两本词典

dictlist = {'Red': {345: 25.0, 123: 67.0, 678: 0, 777: 0}, 'Yellow': {345: 20, 123: 10, 678: 10, 777: 10}, 'Blue': {345: 25.0, 123: 67.0, 678: 0, 777: 0}

dict1 = {345: 4, 123: 4, 678: 3, 777: 1}

我想要一个适用于每种颜色的模板: 代码/百分比(来自dictlist)/总计(来自dict1)

到目前为止,我已经:

    {% for key, val in dictlist.items %}
<h2>{{ key }}</h2>
<table>
    <tr>
        <td>Code</td>
        <td>Percentage</td>
    </tr>

        {% for k,v in val.items %}
        <tr>
            <td>{{ k }}</td>
            <td>{{ v }}</td>
            {% for k in dict1.items %}
            <td>{{ dict1.items.k }}</td>
            {% endfor %}
        </tr>
        {% endfor %}
</table>

我无法从dictlist中的dict1中获取匹配键for循环...我怎样才能在循环中访问不同的字典呢?

提前致谢

1 个答案:

答案 0 :(得分:0)

这可能是使用模板标记的好用例:

@register.filter
def get_item_from_dict(d, key):
    return d.get(key)

并在模板中

你可以这样做:

{%for dict1_k,dict1_v in dict1.items%} {{dict1_v | get_item_from_dict:k}} {%endfor%}

OR

根据评论,只是

<td>{{ dict1|get_item_from_dict:k }}</td>