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 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 successivement la valeur de chaque élément. Les modèles n’ont pas de règles d’indentation, donc {% endfor %} ferme la boucle. La partie facultative {% empty %} ne s’affiche que si 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, parcourez drinks à l’intérieur de <ul> :
- un
<li class="drink">par boisson, avec son nom ; - s’il n’y a aucune boisson, utilisez plutôt
<li>No drinks today.</li>.
Appuyez sur Exécuter : /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