我有一本像
{'Switch_all': 'N/A', 'Router_down': 'N/A', 'Switch_down': 'N/A', 'Router_all': 'N/A'}
我想通过使用键 ex:Switch_all 在 django 模板中迭代这个字典。
如果我给出像 Switch_all 这样的键,我就可以从字典中获取数据
问题是我需要从另一个列表动态地形成这个变量。例如,列表将包含以下数据
['Swich','Router']
我必须遍历这个列表并附加像 _up、_down 这样的字符串以形成作为字典中键之一的新变量。
现在我尝试使用自定义模板过滤器,但我仍然发现传递两个参数有困难
我包含在模板中的代码是
{{ value|dyndictval:header,"_up" }}
在上面的代码中,value 是字典,header 是接受 Switch、Router 等参数的变量,当附加第二个参数(这里是 '_up')时,将形成字典中的键(值)。
自定义过滤器代码是
def dyndictval(d, key1):
keys = key1.split(',')
return d.get(keys[0]+keys[1],'')
我已经通过使用下面使用 with 标签创建的单独变量克服了这一要求,并使用相同的变量将参数传递给自定义过滤器
{% with header|add:"_up" as templatevar %}>>>>{{templatevar}}<<<<
{{ value|dyndictval:templatevar }}
{% endwith %}