Sommaire

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 ...