[Django] テンプレートの共通の部分を使いまわそう

2019/3/20追記

この記事を書いた当時は理解が浅くこの記事にちょっと甘い部分がありました。

もし良ければこの記事も目を通していただけると嬉しいです

[Django] “‘block’ tag with name ‘content’ appears more than once”ってエラーが出た

 

 

Djangoでは「extend」や「block」という組み込みタグを使うことでテンプレートの共通の部分を使いまわせたりします。

複数のテンプレートで共通の部分がある場合などはこの組み込みタグを使って使いまわすといいと思います。

そのようにしておくと共通の部分を変更する際に元の部分の変更だけで済み、すべてのテンプレートを1つ1つ変更しなくてもよくなるため是非活用したい機能です。

親テンプレートのindex.html

 

{% block content%}と{% endblock%}で囲まれた場所に子テンプレートが挿入されます。

子テンプレートとしてcontentA.htmlとcontentB.htmlを用意しました。

 

両方とも1行目で親テンプレートを拡張したことを示しています。違うのは5行目の1行だけ

views.pyはこんな感じ

アクセスすると

こう表示されます

views.pyを書き換えてhello/contentB.htmlへ行くようにすると

こんな感じに表示されます。

今回の例だと親テンプレートを変更するだけで2つの記事に変更が反映されるので便利ですね。

投稿者:

retasu

情報系の理系大学生 DjangoとかPythonとか勉強中 FF14にハマっています

「[Django] テンプレートの共通の部分を使いまわそう」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です