Django でアプリケーションを開発していますが、Django テンプレート システムを使用して、テンプレートの継承を使用してブロックのオーバーライドを実現する方法がわかりません。
私はbase.htmlテンプレートを持っています:
[...]
<body>
{% block content %}
{% endblock %}
</body>
[...]
index.htmlJS スライダーを表示するテンプレートがあります (コンテンツはbodyタグに直接存在します)。
{% extends "base.html" %}
{% block content %}
// some javascript/css slider stuff here
{% endblock %}
また、いくつかの動的コンテンツ ページがあります: list.html、form.htmlなど (それらのコンテンツはいくつかのdivコンテナーに存在する必要があります)。container.html私はどういうわけか次のように定義します:
{% extends "base.html" %}
{% block content %}
<div class="container marketing">
<div class="container">
{% put overriden "content" block here %}
</div>
</div>
{% endblock %}
そして、次list.htmlのように定義できます。
{% extends "container.html" %} # note what I'm extending here!
{% block content %}
this is my list
{% endblock %}
なんで?
基本テンプレートをできるだけ一般的なものに保ちたい (例: クライアント側のスライダーを有効にする -divコンテナなし)。また、ほとんどの動的ページ (リスト、フォームなど) を同じ HTML コンテナー コードでラップしたいと考えています。このコードを繰り返したくないので、これは 1 つのテンプレート (リスト、フォームなどによって拡張されるテンプレート) で利用できる必要があります。
内部に別のブロックを定義できることはわかっています。しかし、おそらくより良い解決策がありますか?