Affichage dans les templates
Tag automatique
La balise {% messages %} affiche automatiquement tous les messages :
{% messages %}
Elle inclut le template interne message/message_include.html qui génère :
{% if messages %}
<div class="flash-messages">
{% for message in messages %}
<div class="message message-{{ message.level }}">
{{ message.content }}
</div>
{% endfor %}
</div>
{% endif %}
Placement recommandé
Placez {% messages %} dans votre template de base, juste avant le contenu principal :
<!-- base.html -->
<body>
<header>...</header>
{% messages %}
<main>
{% block content %}{% endblock %}
</main>
<footer>...</footer>
</body>
Personnalisation de l'affichage
Pour personnaliser l'affichage, bouclez manuellement sur messages :
{% if messages %}
{% for msg in messages %}
<div class="alert alert-{{ msg.level }}" role="alert">
<strong>
{% if msg.level == "success" %}✅
{% elif msg.level == "error" %}❌
{% elif msg.level == "warning" %}⚠️
{% elif msg.level == "info" %}ℹ️
{% endif %}
</strong>
{{ msg.content }}
</div>
{% endfor %}
{% endif %}