在 Django 模板中使用动态键访问字典值
Django 模板提供了一种使用字典的便捷方法,使开发人员能够使用以下方式访问值点符号(例如,{{ mydict.key1}})。但是,当键是循环变量时,例如提供的示例中的 item.NAME,直接访问字典值就会出现问题。
解决方案:利用自定义模板过滤器
为了克服这一挑战,Django 提供了定义自定义模板过滤器的功能,以扩展模板系统的功能。这是一个过滤器,允许您使用变量键查找字典值:
# import the necessary modules from django.template.defaulttags import register # define the custom template filter @register.filter def get_item(dictionary, key): return dictionary.get(key)
get_item 过滤器使用 get 方法从给定字典中检索与提供的键对应的值。如果在字典中找不到该键,get_item 将返回 None 而不是引发 KeyError。
模板中的用法
要使用自定义过滤器,只需通过管道传递字典及其变量键,如下所示:
{{ mydict|get_item:item.NAME }}
在此示例中,mydict 是包含键值对,item.NAME 是变量键。 get_item 过滤器将使用键 item.NAME 在 mydict 中查找值并返回相应的值。
以上是如何在 Django 模板中使用动态键访问字典值?的详细内容。更多信息请关注PHP中文网其他相关文章!