Menu
CoddyTech

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 }} imprime 3.5. Un filtro cambia un valor mientras la plantilla lo imprime. Va después de un |, y algunos reciben un argumento después de dos puntos:

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

{# ... #} es un comentario de plantilla que nunca se muestra. El argumento de floatformat indica cuántos decimales muestra siempre. length cuenta los elementos de una lista, y pluralize agrega una terminación, s a menos que indiques otra, cuando la cantidad no es exactamente uno: 3 boxes, 1 box.

Los filtros solo cambian lo que se imprime, nunca los datos de la vista.

challenge icon

Desafío

Fácil

En drinks.html, debajo de <h1>, añade un <p class="count"> que indique 4 drinks, o 1 drink cuando haya una. En el <li> de cada bebida, añade después del nombre un <span class="price"> con dos decimales, como $3.50.

Abre /drinks/: muestra 4 drinks, y el Latte cuesta $3.50.

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

Practica por tu cuenta: Playground de Django