Menu
CoddyTech

Boucles dans les modèles

Fait partie de la section Les bases de Django du Journey Django de Coddy. Leçon 13 sur 23.

Le café a une nouvelle page, /drinks/. Sa vue transmet chaque boisson au modèle sous le nom drinks, mais la liste de la page est vide. La balise {% for %} répète le code HTML une fois par élément. Une page qui répertorie les tables libres :

<ul>
{% for table in free_tables %}
    <li>Table {{ table }} is free.</li>
{% empty %}
    <li>Every table is taken.</li>
{% endfor %}
</ul>

Elle fonctionne comme la boucle for de Python : table prend la valeur de chaque élément à tour de rôle. Les modèles n’ont pas de règles d’indentation, donc {% endfor %} ferme la boucle. La partie facultative {% empty %} s’affiche uniquement lorsque la liste est vide.

La boucle ne voit que les noms présents dans le contexte, comme drinks, et non les variables de views.py.

challenge icon

Défi

Facile

Dans drinks.html, parcours drinks à l’intérieur de <ul>. Chaque boisson reçoit un <li class="drink"> avec son nom. S’il n’y a aucune boisson, affiche plutôt <li>No drinks today.</li>.

Appuie sur « Jouer » : /drinks/ affiche quatre boissons.

Essayez vous-même

<!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>

Toutes les leçons de Les bases de Django

Entraînez-vous par vous-même : Playground Django