在Django模板中使用变量访问字典元素
情况是这样的。我们要渲染一个视图。
return render(request, 'test.html', {'db_object': db_object, 'dict': dict }
在模板中,我们现在想用 db_object.key
来访问字典。在Python中,通常你会这样做:dict[db_object.key]
。在模板中,你可以用 {{ dict.some_key }}
来获取值。但是在接下来的情况下,你显然不能这样做:{{ dict.db_object.key }}
。
有没有办法做到这一点呢?
1 个回答
3
这个问题之前已经讨论过了,我找到的最佳解决办法是创建一个简单的自定义过滤器。如果那个链接失效了,这里有代码(虽然不是我写的,但我提供给你作为参考):
@register.filter
def get_item(dictionary, key): return dictionary.get(key)
在模板中使用时:
{{ dict|get_item:object.key }}
当然,要确保在你的模板标签中调用load,这样它们才能被渲染器识别。