Menu
CoddyTech

Filtres de modèle

Fait partie de la section Les bases de Django du Journey Django de Coddy. Leçon 15 sur 23.

La liste des boissons doit indiquer combien il y en a et afficher les prix comme $3.50, mais {{ drink.price }} affiche 3.5. Un filtre modifie une valeur au moment où le modèle l’affiche. Il suit un |, et certains prennent un argument après deux-points :

{{ rating|floatformat:1 }}     {# 4.7, when rating is 4.66 #}
{{ boxes|length }} box{{ boxes|pluralize:"es" }}

{# ... #} est un commentaire de modèle, jamais affiché. L’argument de floatformat indique le nombre de décimales toujours affichées. length compte les éléments d’une liste, et pluralize ajoute une terminaison, s sauf si vous en indiquez une autre, lorsque le nombre n’est pas exactement un : 3 boxes, 1 box.

Les filtres modifient uniquement ce qui est affiché, jamais les données dans votre vue.

challenge icon

Défi

Facile

Dans drinks.html, sous le <h1>, ajoute un <p class="count"> qui affiche 4 drinks, ou 1 drink lorsqu’il y en a un. Dans le <li> de chaque boisson, après son nom, ajoute un <span class="price"> avec deux décimales, comme $3.50.

Ouvre /drinks/ : la page affiche 4 drinks, et le Latte coûte $3.50.

Essayez vous-même

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Our Drinks</title>
</head>
<body>
    <h1>Our Drinks</h1>
    <ul>
        {% for drink in drinks %}
            <li class="drink">
                {{ drink.name }}
                {% if drink.sold_out %}
                    <span class="sold-out">Sold out</span>
                {% endif %}
            </li>
        {% empty %}
            <li>No drinks today.</li>
        {% endfor %}
    </ul>
</body>
</html>

Toutes les leçons de Les bases de Django

Entraînez-vous par vous-même : Playground Django