Django 模板:使用变量键访问字典值
使用点运算符访问 Django 模板中的字典值非常简单,即 {{ mydict.key }}。然而,当键本身是一个变量时,特别是当它是循环变量的属性时,就会出现挑战。
问题:
考虑以下情况:
mydict = {"key1":"value1", "key2":"value2"} {% for item in list %} {{ mydict.item.NAME }} # Attempt to look up mydict[item.NAME] {% endfor %}
这里是 mydict.item.NAME 语法失败。
解决方案:
要解决此问题,您可以创建自定义模板过滤器:
from django.template.defaulttags import register @register.filter def get_item(dictionary, key): return dictionary.get(key)
请注意 get()使用方法而不是字典[key]来处理键不存在的情况(返回 None 而不是引发KeyError)。
用法:
注册过滤器后,您可以使用变量键访问字典值,如下所示:
{{ mydict|get_item:item.NAME }}
以上是如何在 Django 模板中使用变量键访问字典值?的详细内容。更多信息请关注PHP中文网其他相关文章!