{% include "example.html" with name="John" hide_last_name=True %}
基本上,我正在尝试将"example.html"作为子模板包含在我的主模板中。提供了将关键字参数传递name
和hide_last_name
的平均值的其他上下文。虽然 django 模板系统识别name
没有问题,但它不知何故无法识别hide_last_name
。我怀疑现在允许在标签中使用布尔关键字参数Include
但我在官方文档中找不到任何地方提到这一点。请帮忙。谢谢。
对于 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,因此这不再是问题
更新:这个答案适用于旧版本的 Django。请参阅下面的 Django>=1.5 的答案
Django 模板会将True
视为变量,并尝试在上下文中找到它。
您可以使用非空字符串来表示 true 值,也可以在上下文中将 true 值分配给True
,例如通过 TEMPLATE_CONTEXT_PROCESSORS
:
def common_vars(request):
return {
'True': True,
'False': False,
'newline': 'n',
...
}
在 django 1.5 中,你可以根据他们的发行说明在 django 模板中使用 True。
如果您正在开发早期版本,则必须按照@okm的建议进行操作!