Loops em templates
Parte da seção Fundamentos do Django do Journey de Django da Coddy. Lição 13 de 23.
O café tem uma nova página, /drinks/. A view dela passa todas as bebidas para o template como drinks, mas a lista na página está vazia. A tag {% for %} repete o HTML uma vez por item. Uma página que lista mesas livres:
<ul>
{% for table in free_tables %}
<li>Table {{ table }} is free.</li>
{% empty %}
<li>Every table is taken.</li>
{% endfor %}
</ul>Ela funciona como o for do Python, com table definido como cada item, um de cada vez. Templates não têm regras de indentação, então {% endfor %} fecha o loop. A parte opcional {% empty %} só é exibida quando a lista está vazia.
O loop só acessa nomes no contexto, como drinks, e não as variáveis de views.py.
Desafio
FácilEm drinks.html, percorra drinks dentro de <ul>:
- um
<li class="drink">para cada bebida, com o nome dela; - quando não houver bebidas, use
<li>No drinks today.</li>.
Pressione Executar: /drinks/ lista quatro bebidas.
Experimente você mesmo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Our Drinks</title>
</head>
<body>
<h1>Our Drinks</h1>
<ul>
<!-- one <li class="drink"> per drink -->
</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