Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

Em 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

Pratique por conta própria: Playground de Django