oujood.com

Les variables de la boucle for

Django fournit également de multiples variables intégrées que nous pouvons utiliser en utilisant la balise for loop. Et la majorité d'entre elles sont utilisées pour obtenir un compteur lors de l'utilisation de la boucle for.
Ainsi, en utilisant ces variables, nous pouvons obtenir différents types de compteurs. Toutes les variables liées au compteur sont listées ci-dessous.

chercher |

Les variables compteur(counter) de la boucle for du template en django

Django possède quelques variables qui sont disponibles pour vous à l'intérieur d'une boucle :

forloop.counter : l'itération de la boucle commence à partir de l'index 1.
forloop.counter0 : l'itération de la boucle commence à partir de l'index 0.
forloop.revcounter : l'itération commence à partir de la fin de la boucle jusqu'à l'index 1.
forloop.revcounter0 : l'itération de la boucle commence à partir de la fin de la boucle jusqu'à l'index 0.
forloop.first : renvoie Vrai pour le premier élément du tableau, et pour tous les autres éléments, elle renvoie Faux.
forloop.last : renvoie Vrai pour le dernier élément du tableau, et pour tous les autres éléments, elle renvoie Faux.


Pour la démonstration reprenons un exemple du chapitre précédent :

Exemple Boucle dans un dictionnaire :

Fichier testes/templates/template.html             📋 Copier le code

<!DOCTYPE html>
<html>
<body>
<h1>Marques de voitures françaises :</h1>
<table>
<tr><th>Marque </th><th>Année</th></tr>
{% for x in voitures %}
  <tr><td> {{ x.marque }} </td>
  <td> {{ x.annee }} </td></tr>
{% endfor %}
</dl>
</table>
<p>Dans le fichier views.py, vous pouvez voir à quoi ressemble la variable voitures.</p>

</body>
</html> 

Fichier testes/views.py :             📋 Copier le code

from django.http import HttpResponse
from django.template import loader

def testing(request):
  template = loader.get_template('template.html')
  context = {
   'voitures': [
{'marque': 'BUGATTI' , 'annee': '1909'},
{'marque':'CHRYSLER', 'annee':'1970-1979' },
{'marque':'CITROëN', 'annee':'Depuis 1919' },
{'marque':'DS', 'annee':'2014 '},
{'marque':'DELAHAYE','annee':'1935-1954'},
{'marque':'FACEL-VEGA','annee':'1954-1964'},
{'marque':'FORD ','annee':'1916-1954 '},
{'marque':'PANHARD','annee':'1890-1967'},],   
  }
  return HttpResponse(template.render(context, request)) 
Maintenant, pour la démonstration, utilisons l'une de ces variables dans notre exemple précédent de liste de voitures. Comme vous pouvez le voir dans le résultat de notre exemple précédent, nous n'avons pas d'index dans notre liste d'employés.

Nous allons donc utiliser la variable "forloop.counter" pour ajouter un index à notre liste de voitures. Et cette fois, il nous suffit de modifier notre page template.html.

Le code complet que nous avons ajouté à notre page template.html est le suivant :.

Fichier testes/templates/template.html             📋 Copier le code

<!DOCTYPE html>
<html>
<body>
<h1>Marques de voitures françaises :</h1>
<table>
<tr><th>Indexe </th><th>Marque </th><th>Année</th></tr>
{% for x in voitures %}
  <tr><td> {{ forloop.counter }} </td><td> {{ x.marque }} </td>
  <td> {{ x.annee }} </td></tr>
{% endfor %}
</dl>
</table>
<p>Dans le fichier views.py, vous pouvez voir à quoi ressemble la variable voitures.</p>

</body>
</html> 

Vous pouvez tester les autres variables du conteur :

forloop.counter0, forloop.revcounter et forloop.revcounter0

En utilisant l’une d’entre elles à la place de forloop.counter pour voir ce que ça donne.

Django la variable forloop.last et la variable forloop.first

Django fournit également deux variables intégrées avec la balise for loop, à l'aide des laquelles nous pouvons déterminer le dernier ou le premier élément du tableau. Ces variables sont:

"forloop.last". Cette variable renvoie Vrai pour le dernier élément du tableau, et pour tous les autres éléments, elle renvoie Faux.
"forloop.first". Cette variable renvoie Vrai pour le premier élément du tableau, et pour tous les autres éléments, elle renvoie Faux.

Ainsi, nous pouvons facilement utiliser ces variables pour récupérer la dernière et|ou la première valeur du tableau.

Voyons comment utiliser cette variable

Encore une fois, pour cet exemple, nous utiliserons la même liste de voitures que dans le précédent exemple. Et nous utiliserons la variable dans la boucle for de la page template.html.

Nous n'avons donc apporté que quelques modifications au corps de la page. Le code de la page template.html est le suivant.

Fichier testes/templates/template.html             📋 Copier le code

<!DOCTYPE html>
<html>
<body>
<h1>Marques de voitures françaises :</h1>
<table>
<tr><th>Indexe </th><th>Marque </th><th>Année</th></tr>
{% for x in voitures %}

  <tr {% if forloop.first %}
			style='background-color:lightblue;'
	{% endif %}><td> {{ forloop.counter }} </td><td> {{ x.marque }} </td>
  <td> {{ x.annee }} </td></tr>
{% endfor %}
</dl>
</table>
<p>Dans le fichier views.py, vous pouvez voir à quoi ressemble la variable voitures.</p>

</body>
</html>  

Dans cet exemple l'arrière plan du premier élément est mis en bleu.
Evidement vous pouvez faire la même chose pour le dernier en utilisant forloop.last .

Voir aussi nos tutoriel :

Les couleurs en css

Mettre en forme un texte en CSS:les couleurs de police, la propriété CSS color...

fonction get_html_translation_table, get_html_translation_table

Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities

La fonction polygones

La fonction polygones