2016-04-13 65 views
0

我試圖同時打印在模板2種類型的字典的值,比如:迭代兩個字典同時在模板

<td>key</td><td>value from dict1</td><td>value from dict2</td> 

兩種類型的字典包含相同的密鑰,但不同的值。有沒有辦法達到這個目的?

+1

[有沒有辦法在django中同時循環兩個列表?](http://stackoverflow.com/questions/14841165/is-there-a-way-to-loop-over-two-列表同時在Django) – Sayse

+0

雖然這是列表,我使用的是字典。 – Roadhouse

回答

1

您可以使用自定義過濾器來完成此操作。如果密鑰相同,如this answer描述的第一定義自定義過濾器:

from django.template.defaulttags import register 
... 
@register.filter 
def get_item(dictionary, key): 
    return dictionary.get(key) 

那麼你可以做你的模板如下:

{% for key, value1 in dict1.items %} 
    <td>Value 1: {{ value1 }}</td> 
    <td>Value 2: {{ dict2|get_item:key }}</td> 
{% endfor %} 

另見this question另一個解決方法。

+0

完美的作品,非常感謝! – Roadhouse