{% include "example.html" with name="John" hide_last_name=True %}
基本上,我试图在我的主模板中包含“example.html”作为子模板。附加上下文提供了传递关键字参数name
和hide_last_name
的含义。虽然django模板系统无法识别name
,但它无法识别hide_last_name
。我怀疑现在允许在Include
标签中使用boolean keyword参数,但后来我在官方文档中找不到任何地方。请帮忙。感谢。
答案 0 :(得分:11)
Django模板会将True
视为变量,并尝试在上下文中找到它
您可以使用非空字符串来表示真值,也可以将真值分配给上下文中的True
,例如通过TEMPLATE_CONTEXT_PROCESSORS
:
def common_vars(request):
return {
'True': True,
'False': False,
'newline': '\n',
...
}
答案 1 :(得分:8)
对于Django< = 1.4.x
如前所述,Django试图找到一个名为“True”的变量。 处理此问题的最简单方法是使用一个不会被计算的整数值。
您可以在包装器模板中书写
{% include "example.html" with show_last_name=1 %}
并在随附的模板中
John
{% if show_last_name %}
Doe
{% endif %}
对于Django> = 1.5
您可以在模板中使用True和False,因此这不再是问题
答案 2 :(得分:2)
在django 1.5中,您可以根据release notes在django模板中使用True。
如果您正在使用早期版本,则必须使用@okm建议的内容!