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.
Défi
FacileDans 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
1Votre premier site Django
Bonjour, DjangoUne deuxième page4Mises en page et fichiers statiques
Héritage des templatesUn titre pour chaque page3Modèles
Votre premier modèleVariables de modèleEntraînez-vous par vous-même : Playground Django