我有一个像
这样的项目的字典{'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" }}
在上面的代码值中是字典,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 %}
答案 0 :(得分:0)
这应该在视图中完成。模板应仅包含最小逻辑。
在视图中,使用python可以非常轻松地完成。如果您需要帮助,请将代码发布为问题的编辑,人们会提供帮助。