web-dev-qa-db-fra.com

Django Pied de page et en-tête sur chaque page avec {% étend}

J'essaie donc d'ajouter le pied de page et l'en-tête sur chaque page de mon site Web. J'ai créé un fichier base.html qui contient la mise en page générale du site.

Dans ma page about.html, j'ai fait:

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

<h1>Content goes here</h1>

Je peux voir mon en-tête et mon pied de page, mais comment afficher le contenu. Je veux taper des trucs dans cette page about.html. Le contenu va ici n'est pas affiché au milieu.

16
encrypt

Vous devez définir un bloc dans base.html et le remplir dans 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 %}

Tout cela est expliqué en détail dans le tutoriel.

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

Ou créez simplement about.html et l'inclure où vous voulez dans votre html principal.

Exemple:

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

Disons que votre base.html ressemble à ceci:

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

Ensuite, dans votre autre fichier, vous feriez ceci:

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

Tout ce qui est placé dans la balise body du modèle (fichier étendu) serait écrasé par le contenu du fichier enfant, mais tout ce qui se trouve en dehors de cette balise serait étendu ou copié dedans.

Voici les documents sur la balise de bloc

2
Matthew R.