Mi sono imbattuto in un comportamento molto strano del sistema di template Django. Ho un file di modello, vale a dire test.html
, che a sua volta comprende in modo ricorsivo:Tag di inclusione condizionale in Django
{% include "test.html" %}
Naturalmente, tale modello ha alcuna possibilità di essere reso, dal momento che non v'è alcuna condizione di finitura. OK, proviamo il seguente:
{% if test_false %}{% include "test.html" %}{% endif %},
dove test_false
è una variabile passata al modello e pari a False
.
Uno si aspetta che semplicemente non includere qualsiasi cosa, ma lo fa:
RuntimeError at /test/
maximum recursion depth exceeded while calling a Python object
io non capisco. Il tag include può assumere argomenti dal contesto corrente, quindi dubito che venga eseguito prima di qualsiasi altra parte della pagina. Allora perché ignora il tag delle condizioni?