L’héritage dans les templates

Une des fonctionnalités puissantes du processeur de templates Django est l’héritage. Ce mécanisme permet de créer un modèle de base, un squelette, qui va contenir tous les éléments importants de votre site. Ces éléments étant définis sous forme de blocs nommés. Ces blocs vont pouvoir être modifiés, étendus ou supprimés par les templates enfants qui hériteront de ce modèle de base. Toutes les modifications pourront être faites bloc par bloc, en fonction des besoins du template enfant.

Pour signifier qu’un template enfant hérite de son parent on utilise le tag extends.

{% extends "nom_du_template_parent.html" %}
 

Important : le tag {% extends %}, s’il est utilisé dans un template, doit apparaître en premier, sinon cela ne fonctionnera pas !

Chaque nom de bloc ne peut être défini qu’une fois dans un template enfant, car sinon le moteur de templates ne saura pas lequel utiliser et renverra un message d’erreur. 

On peut récupérer le contenu du bloc du template parent, grâce à la variable {{ block.super }}. Cela peut par exemple servir si l’on souhaite juste rajouter un peu de contenu au bloc du template parent sans avoir envie de tout réécrire, en particulier si ce bloc est long et complexe. Cette variable ne sera pas soumise à la procédure d’échappement...

Pour consulter la suite, découvrez le livre suivant :
couv_EIDJA.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Le principe et la syntaxe du langage de templates de Django
Suivant
Échappement automatique du HTML