我遇到了Django模板系統非常奇怪的行爲。我有一個模板文件,即test.html
,其中包括遞歸本身:有條件的在Django中包含標籤
{% 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
我不明白這一點。包含標籤可以從當前上下文獲取參數,所以我懷疑它在頁面的任何其他部分之前執行。那爲什麼它忽略條件標籤?