Filtros de template
Parte da seção Fundamentos do Django do Journey de Django da Coddy. Lição 15 de 23.
A lista de bebidas deve informar quantas bebidas há e mostrar preços como $3.50, mas {{ drink.price }} exibe 3.5. Um filtro altera um valor enquanto o modelo o exibe. Ele vem depois de um |, e alguns recebem um argumento depois de dois-pontos:
{{ guest.name|upper }} {# ADA #}
{{ rating|floatformat:1 }} {# 4.7, when rating is 4.66 #}
{{ boxes|length }} box{{ boxes|pluralize:"es" }}{# ... #} é um comentário de modelo e nunca é exibido. O argumento de floatformat indica quantas casas decimais ele sempre exibe. length conta os itens de uma lista, e pluralize acrescenta uma terminação, s se você não indicar outra, quando a quantidade não é exatamente um: 3 boxes, 1 box.Os filtros alteram apenas o que é exibido, nunca os dados na sua view.
Desafio
FácilEm drinks.html:
- abaixo do
<h1>, um<p class="count">que exiba4 drinks, ou1 drinkquando houver apenas um; - em cada
<li>de bebida, após o nome, um<span class="price">com duas casas decimais:$3.50.
Pressione Executar e acesse /drinks/.
Experimente você mesmo
<!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 as lições de Fundamentos do Django
1Seu Primeiro Site com Django
Olá, DjangoUma Segunda Página4Layouts e Arquivos Estáticos
Herança de TemplatesUm Título para Cada Página3Templates
Seu primeiro templateVariáveis de templatePratique por conta própria: Playground de Django