在 Django 模板中,使用语法 {{ mydict.key1 }} 或 {{ mydict.key2 } 访问字典值非常简单}。然而,当将循环变量作为字典键处理时,传统方法会失败。
考虑以下场景:
mydict = {"key1":"value1", "key2":"value2"} {% for item in list %} {{ mydict.item.NAME }} # This fails {% endfor %}
在上面的代码中,item.NAME 作为循环变量属性名称。但是,mydict.item.NAME 无法提供所需的结果。
为了克服这一挑战,可以创建自定义模板过滤器:
from django.template.defaulttags import register ... @register.filter def get_item(dictionary, key): return dictionary.get(key)
get_item 过滤器利用 .get () 方法检索与指定键关联的值。这确保了如果键不存在,它会返回 None 而不是引发 KeyError。
要使用过滤器,请修改模板代码如下:
{{ mydict|get_item:item.NAME }}
以上是如何在 Django 模板中使用循环变量作为键来访问字典值?的详细内容。更多信息请关注PHP中文网其他相关文章!