Wystąpiło bardzo dziwne zachowanie systemu szablonów Django. Mam plik szablonu, mianowicie test.html
, która zawiera się rekurencyjnie:Znacznik warunkowego uwzględnienia w Django
{% include "test.html" %}
Oczywiście, taki szablon nie ma szans, aby być renderowane, ponieważ nie ma stan wykończeniowy. OK, spróbujmy następujące:
{% if test_false %}{% include "test.html" %}{% endif %},
gdzie test_false
jest zmienna przekazywana do szablonu i równa False
.
One spodziewa się, że po prostu nie będzie to nic, ale to robi:
RuntimeError at /test/
maximum recursion depth exceeded while calling a Python object
ja nie rozumiem. Tag dołączania może przyjmować argumenty z bieżącego kontekstu, więc wątpię, by był on wykonywany przed jakąkolwiek inną częścią strony. Dlaczego więc ignoruje tag warunku?