我遇到了 Django 模板系统的非常奇怪的行为。我有一个模板文件,即test.html
,它递归地包含自己:
{% include "test.html" %}
当然,这样的模板没有机会被渲染,因为没有完成条件。好的,让我们尝试以下方法:
{% if test_false %}{% include "test.html" %}{% endif %},
其中test_false
是传递给模板的变量并且等于False
。
人们期望它不包含任何内容,但它确实:
RuntimeError at /test/
maximum recursion depth exceeded while calling a Python object
我不明白。包含标签可以从当前上下文中获取参数,所以我怀疑它是在页面的任何其他部分之前执行的。那它为什么会忽略条件标签呢?