Définit une section dans un document
Cet article porte sur l'utilisation de la balise cycle dans les templates. La balise cycle vous permet d'effectuer différentes tâches pour différentes itérations.
La balise cycle prend des arguments, la première itération utilise le premier argument, la seconde itération utilise le second argument, etc.
{% cycle 'valeur_1' 'valeur_2' ... valeur_n %}
ExempleSi vous voulez avoir une nouvelle couleur de fond pour chaque itération, vous pouvez le faire avec la balise cycle :Fichier template.html 📋 Copier le code
<!DOCTYPE html> <html> <body> <ul> {% for x in membres %} <li style="background-color: {% cycle 'lightblue' 'pink' 'yellow' 'coral' '#ccc' %}; width:150px;padding-left:10px"> {{ x.prenom }} </li> {% endfor %} </ul> <p>Dans views.py, vous pouvez voir comment importer et récupérer les membres de la base de données.</p> </body> </html>
Fichier views.py 📋 Copier le code
from django.http import HttpResponse from django.template import loader from .models import Membres def testing(request): monmembres = Membres.objects.all().values() template = loader.get_template('template.html') context = { 'membres': monmembres, } return HttpResponse(template.render(context, request))Reprenons l’exemple ci-dessus mais avec deux couleurs seulement
Fichier template.html 📋 Copier le code
<!DOCTYPE html> <html> <body> <ul> {% for x in membres %} <li style="background-color: {% cycle 'pink' 'yellow'%}; width:150px;padding-left:10px"> {{ x.prenom }} </li> {% endfor %} </ul> <p>Dans views.py, vous pouvez voir comment importer et récupérer les membres de la base de données.</p> </body> </html>
Fichier termplate.html 📋 Copier le code
<!DOCTYPE html> <html> <body> <ul> {% for x in membres %} {% cycle 'lightblue' 'pink' 'yellow' 'coral' '#eee' as bgcolor silent %} <li style="background-color:{{ bgcolor }}; width:150px;padding-left:10px"> {{ x.prenom }} </li> {% endfor %} </ul> <p>Dans views.py, vous pouvez voir comment importer et récupérer les membres de la base de données.</p> </body> </html>
Fichier termplate.html 📋 Copier le code
<!DOCTYPE html> <html> <body> <ul> {% for x in membres %} {% cycle 'lightblue' 'pink' 'yellow' 'coral' '#eee' as bgcolor silent %} {% if forloop.counter == 3 %} {% resetcycle %} {% endif %} <li style="background-color:{{ bgcolor }}; width:150px;padding-left:10px"> {{ x.prenom }} </li> {% endfor %} </ul> <p>Dans views.py, vous pouvez voir comment importer et récupérer les membres de la base de données.</p> </body> </html>