Django 模板:如何显示其键中有一个点的字典?d['key.name']

Jay*_*Jay 4 tags django templates filter

我有一本这样的字典:

dict_name['keyname.with.manydots']
Run Code Online (Sandbox Code Playgroud)

问题:我不能做

{{ dict_name.keyname.with.manydots }} 
Run Code Online (Sandbox Code Playgroud)

我知道用 Django 的模板是不可能做到这一点的……但是你找到的最好的解决方法是什么?谢谢!

Tim*_*ony 6

您可以编写自定义模板过滤器

from django import template

register = template.Library()

@register.filter
def get_key(value, arg):
    return value.get(arg, None)
Run Code Online (Sandbox Code Playgroud)

在你的模板中

{{ my_dict|get_key:"dotted.key.value" }}
Run Code Online (Sandbox Code Playgroud)