今、仕事で Python の Web フレームワーク・Django を使っているのですが、ちょっとした問題が起きて、それで気がついたことがあったので、メモ。
Django のテンプレートを継承する仕組みがあります。
よくある継承の利用パターンでは、親テンプレートでサイト全体の基本画面を作っておき、ページによって異なる部分については block タグを使い、
{% block 云々 %}{% endblock %}
と記述して、その部分は子テンプレートの方からはめこめるようにしておきます。で、子テンプレートではまず extends タグを使い、
{% extends "親テンプレート.html" %}
といった記述をし、親テンプレートを呼び出して使えるようにしておきます。その上で、そのページ独自の部分を
{% block 云々 %}!子テンプレート独自の内容!{% endblock %}
といったように記述することになります。
このように使う場合、親テンプレート(あるいは、さらに上位の祖先テンプレート)の block タグの内容は、子テンプレート(あるいは、さらに下位の子孫テンプレート)の同名 block タグの内容によって上書きされます。
なので、上位テンプレートの block タグの内容がもともと空なら特に問題はないのですが、空ではなく、その内容を下位テンプレートの同名 block タグでも引き継ぎたい場合は、対処が必要になります。
上位テンプレートの同名 block タグの内容の継承には、block.super を使います。下位テンプレートの block タグの内側で
{{ block.super }}
と記述すると上位テンプレートの同名 block タグの内容が引き継がれます。
簡単な例を挙げます。
まず、親テンプレートの内容を下の画像のとおりにします。test という block タグを記述して、その内側に赤字で「テスト1」 と表示されるよう HTML のコードを入れます。

次に子テンプレートを記述します。内容は extends タグを使って親テンプレートを呼び出すだけ(下の画像)。

これらのテンプレートを使ったウェブページをブラウザで表示させると、下の画像のようになります。当然、赤字で「テスト1」 と表示されます。

子テンプレートを修正して、親テンプレートと同名の test という block タグを記述して、その内側に青字で「テスト2」 と表示されるよう HTML のコードを入れます(下の画像)。

そうすると、ブラウザでは青字で「テスト2」だけが表示されるようになります(下の画像)。

ブラウザでソースコードを確認すると、親テンプレートで記述した block test タグの内容がありません(下の画像)。子テンプレートの同名の block タグに上書きされたためです。

子テンプレートを修正して、 {{ block.super }} を追加します(下の画像)。

今度はブラウザで赤字の「テスト1」、青字の「テスト2」が両方表示されます(下の画像)。

ソースコードにも、親テンプレート、子テンプレート両方の block test タグの内容が反映されています(下の画像)。

この例は単純でわかりやすいと思いますが、現場ではテンプレートの階層が3層、4層ともっと深かったり、複数の担当者がそれぞれ別のテンプレートの修正を担当しているために、block タグの名前がいつのまにか重複していたりとかで、「あれっ、なんでここ、表示されないの?」なんてことが起きたりします。てか、起きました・・・(冒頭に書いた「問題」って、そいうことです)。