Django Footer и заголовок на каждой странице с {% extends}

Итак, я пытаюсь добавить нижний колонтитул и заголовок на каждой странице моего сайта. Я создал файл base.html, который содержит общий макет сайта.

На моей странице about.html я сделал:

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

<h1>Content goes here</h1>

Я могу видеть свой верхний и нижний колонтитул, но как показать содержимое. Я хочу напечатать материал на этой странице about.html. Содержание здесь не отображается в середине.

Ответ 1

Вам нужно определить блок в 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 %}

Все это полностью объяснено в учебнике.

Ответ 2

{% 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 %}

Ответ 3

Скажем, ваш base.html выглядит так:

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

Затем в другом файле вы сделаете следующее:

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

Все, что помещено внутри тега body (тега) шаблона (расширенного файла), будет перезаписано материалом в содержимом дочернего файла, но что-либо вне этого тега будет расширено или скопировано в него.

Вот документы в блочном теге