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.
Sfida
FacileIn drinks.html:
- sotto l'
<h1>, un<p class="count">che indica4 drinks, oppure1 drinkquando 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
4Layout e file statici
Ereditarietà dei templateUn titolo per ogni pagina3Template
Il tuo primo templateVariabili nei templateEsercitati da solo: Playground Django