Message Flash

Documentation

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

Niveaux de messages

  • DEBUG : Messages liés au développement qui seront ignorés (ou supprimés) dans un déploiement en production.
  • INFO : Messages d’information pour l’utilisateur.
  • SUCCESS : Une action a réussi, par ex. « votre profil a été mis à jour avec succès ».
  • WARNING : Il n’y a pas eu d’erreur, mais il pourrait y en avoir une sous peu.
  • ERROR : Une action n’a pas réussi ou une autre erreur quelconque s’est produite.

Ajout de message

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

Affichage des messages¶

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