L’infrastructure des messages permet de stocker temporairement des messages dans une requête et de les récupérer ensuite dans une prochaine requête (en générale la suivante) pour les afficher. Chaque message est étiqueté avec un niveau spécifique déterminant sa priorité (par ex. info, warning ou error).
Par exemple dans une fonction de views.py
:
from django.contrib import messages ... messages.add_message(request, messages.INFO, 'Hello world.')
Le message est enregistré au niveau de la session et va s'afficher dans le prochain template qui sera appelé.
Dans un template :
{% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> {% endfor %} </ul> {% endif %}
message.tags
contient la priorité du message (info, success, warning, error) et permet de l'utiliser pour styliser le message.
Exemple avec bootstrap
<div {% if message.tags %} class="alert alert-{{ message.tags }}"{% endif %}>