web-dev-qa-db-ja.com

Django {%extends}の各ページのフッターとヘッダー

そこで、ウェブサイトのすべてのページにフッターとヘッダーを追加しようとしています。サイトの一般的なレイアウトを含むbase.htmlファイルを作成しました。

About.htmlページで、次のことを行いました。

{% extends "public/base.html" %}

<h1>Content goes here</h1>

ヘッダーとフッターは表示できますが、コンテンツを表示するにはどうすればよいですか。そのabout.htmlページに何かを入力したいと思います。ここにあるコンテンツは中央に表示されていません。

16
encrypt

Base.htmlでブロックを定義し、about.htmlに入力する必要があります。

base.html:

<header>...</header>
{% block content %}{% endblock %}
<footer>...</footer>

about.html

{% extends "public/base.html" %}

{% block content %}
<h1>Content goes here</h1>
{% endblock %}

これはすべてチュートリアルで完全に説明されています。

29
Daniel Roseman
{% extends "public/base.html" %}
{% block content %}
<h1>Content goes here</h1>
{% endblock %}

または、単にabout.htmlそして、メインhtmlの任意の場所に追加します。

例:

    {% extends "public/base.html" %}
    {% block content %}
       "Your code"
    {% include "core/about.html" %}
    {% endblock %}
9
chandu

Base.htmlが次のようになっているとしましょう:

<html>
    <body>
        <!-- header code -->
        {% block content %}
        {% endblock %}
        <!-- footer code -->
    </body>
<html>

次に、他のファイルでこれを行います:

{% extends "base.html" %}
{% block content %}
    <!-- Content here -->
{% endblock %}

テンプレート(拡張ファイル)のbodyタグ内に配置されたものはすべて、子ファイルのコンテンツ内のものによって上書きされますが、そのタグの外部のものはすべて、その中に拡張またはコピーされます。

ブロックタグのドキュメント

2
Matthew R.