【发布时间】:2013-05-06 09:57:52
【问题描述】:
我想在我的模板中这样做:
{% for field in form %}
{{ realNameDict.field.name }}
{% endfor %}
realNameDict 是一个字典。上面的代码不起作用。为什么?
编辑: 在python中,我想我可以这样做:
print realNameDict[field[name]]
非常感谢。
解决方案:
感谢@Calvin Cheng 的解释: 诀窍是使用自定义模板标签。
1/ 在您的应用程序目录中,创建一个名为templatetags 的目录。创建两个文件:__init__.py(留空)和extra.py(用于创建自定义模板标签)。
2/ 在extra.py中,创建获取dictionary字典值的函数:
from django import template
register = template.Library()
@register.filter
def ofKey(value, arg):
if value:
return value.get(arg)
else:
return ""
3/在您的模板中,在内容块内,添加以下行以加载自定义模板标签:
{% load extra %}
4/ 在你的模板中调用自定义模板标签:
{{ realNameDict|ofKey:field.name }}
【问题讨论】:
标签: django templates dictionary