Ich bin in sehr seltsames Verhalten des Django-Vorlagensystems gelaufen. Ich habe eine Vorlagendatei, nämlich test.html
, die sich rekursiv umfasst:Bedingtes Include-Tag in Django
{% include "test.html" %}
Natürlich ist eine solche Vorlage hat keine Chance zu übertragen, da es keine Beendigungsbedingung ist. OK, lassen Sie uns versuchen, die folgenden:
{% if test_false %}{% include "test.html" %}{% endif %},
wo test_false
eine Variable Vorlage und gleich False
vergangen ist.
Man erwartet, dass es nicht nur etwas ist, aber es funktioniert:
RuntimeError at /test/
maximum recursion depth exceeded while calling a Python object
Ich verstehe es nicht. Das Include-Tag kann Argumente aus dem aktuellen Kontext übernehmen. Daher bezweifle ich, dass es vor jedem anderen Teil der Seite ausgeführt wird. Warum ignoriert es Condition-Tag?