Django的html模板中,获取字典指定key的值,可以用{{ dict.key }}。但是,如果这里key也是变量,就读不通了。解决的办法是,自定义一个模板标签,生成一个过滤器。
1. 新建模板标签
在app的路径下新建一个templatetags文件夹(如果没有)。在文件夹中新建一个init.py
空文件,告诉程序这个目录是一个python包,然后此路径下再新建一个dict_extra.py的文件。
在dict_extra.py文件中,添加代码:
from django import template
register = template.Library()
@register.filter('hash')
def hash(dic, key):
return dic[key]
2. 使用模板标签
在html的开始部分添加
{% load dict_extra %}
然后重启一下server
在需要使用的地方按如下调用方法即可
{{ dict|hash: key }}