From 2fac0a18081dcc77fc860c801e5d727dc90435b3 Mon Sep 17 00:00:00 2001 From: Victor Date: Fri, 22 Jul 2022 10:09:29 +0200 Subject: [PATCH] Fixed #33317 -- Added note about unconditional evaluation of {% block %} tags. --- docs/ref/templates/language.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/ref/templates/language.txt b/docs/ref/templates/language.txt index f80d2a52f65..5a4cce379be 100644 --- a/docs/ref/templates/language.txt +++ b/docs/ref/templates/language.txt @@ -431,6 +431,15 @@ Here are some tips for working with inheritance: In larger templates, this technique helps you see which ``{% block %}`` tags are being closed. +* :ttag:`{% block %}` tags are evaluated first. That's why the content + of a block is always overridden, regardless of the truthiness of surrounding + tags. For example, this template will *always* override the content of the + ``title`` block:: + + {% if change_title %} + {% block title %}Hello!{% endblock title %} + {% endif %} + Finally, note that you can't define multiple :ttag:`block` tags with the same name in the same template. This limitation exists because a block tag works in "both" directions. That is, a block tag doesn't just provide a hole to fill --