Flash Messages

Affichage dans les templates

Tag automatique {% messages %}

La balise {% messages %} affiche automatiquement tous les messages :

{% messages %}

Elle inclut le template interne message/message.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 :

MessageLevel se sérialise sous le nom du variant Rust ("Success", "Error", "Warning", "Info", capitalisé) — comparez avec cette casse exacte, et passez par | lower pour une classe CSS en minuscules :

{% if messages %}
    {% for msg in messages %}
        <div class="alert alert-{{ msg.level | lower }}" 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 %}