Filtros de plantilla
Parte de la sección Conceptos básicos de Django del Journey de Django de Coddy. Lección 15 de 23.
La lista de bebidas debería indicar cuántas bebidas hay y mostrar precios como $3.50, pero {{ drink.price }} muestra 3.5. Un filtro cambia un valor cuando la plantilla lo muestra. Va después de un |, y algunos reciben un argumento después de dos puntos:
{{ guest.name|upper }} {# ADA #}
{{ rating|floatformat:1 }} {# 4.7, when rating is 4.66 #}
{{ boxes|length }} box{{ boxes|pluralize:"es" }}{# ... #} es un comentario de plantilla y nunca se muestra. El argumento de floatformat indica cuántos decimales muestra siempre. length cuenta los elementos de una lista, y pluralize añade una terminación, s salvo que indiques otra, cuando la cantidad no es exactamente uno: 3 boxes, 1 box.Los filtros solo cambian lo que se muestra, nunca los datos de la vista.
Desafío
FácilEn drinks.html:
- debajo de
<h1>, un<p class="count">que diga4 drinks, o1 drinkcuando haya uno; - en el
<li>de cada bebida, después del nombre, un<span class="price">con dos decimales:$3.50.
Presiona Ejecutar y mira /drinks/.
Pruébalo tú mismo
<!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>
Todas las lecciones de Conceptos básicos de Django
1Tu primer sitio con Django
Hola, DjangoUna segunda página4Diseños y archivos estáticos
Herencia de plantillasUn título para cada página3Plantillas
Tu primera plantillaVariables de plantillaPractica por tu cuenta: Playground de Django