Menu
CoddyTech

Filtri dei template

Fa parte della sezione Fondamenti di Django del percorso Django di Coddy. Lezione 15 di 23.

L’elenco delle bevande dovrebbe indicare quante bevande ci sono e mostrare i prezzi come $3.50, ma {{ drink.price }} stampa 3.5. Un filtro modifica un valore mentre il modello lo stampa. È preceduto da un | e alcuni filtri accettano un argomento dopo i due punti:

{{ guest.name|upper }}         {# ADA #}
{{ rating|floatformat:1 }}     {# 4.7, when rating is 4.66 #}
{{ boxes|length }} box{{ boxes|pluralize:"es" }}
{# ... #} è un commento del modello e non viene mai mostrato. L’argomento di floatformat indica quante cifre decimali mostra sempre. length conta gli elementi di un elenco e pluralize aggiunge una desinenza, s se non ne specifichi un’altra, quando il conteggio non è esattamente uno: 3 boxes, 1 box.

I filtri modificano solo ciò che viene stampato, mai i dati nella tua vista.

challenge icon

Sfida

Facile

In drinks.html:

  • sotto l'<h1>, un <p class="count"> che indica 4 drinks, oppure 1 drink quando ce n'è uno;
  • in ogni <li> di una bevanda, dopo il nome, uno <span class="price"> con due cifre decimali: $3.50.

Premi Run e guarda /drinks/.

Provalo tu

<!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>

Tutte le lezioni di Fondamenti di Django

Esercitati da solo: Playground Django