Il est temps d'afficher des données ! Pour nous aider, Django fournit des balises de gabarit (template tags) qui sont intégrées au framework. Pour le reste du tutoriel, nous utiliserons plutôt le mot template, bien plus répandu que sa traduction "gabarit".
Il est temps d'afficher des données ! Pour nous aider, Django fournit des balises de gabarit (template tags) qui sont intégrées au framework. Pour le reste du tutoriel, nous utiliserons plutôt le mot template, bien plus répandu que sa traduction "gabarit".
Ligne 26:
Ligne 26:
Comme vous pouvez le voir, tout ce que nous avons, c'est ceci :
Comme vous pouvez le voir, tout ce que nous avons, c'est ceci :
-
blog/templates/blog/post_list.html
+
''blog/templates/blog/post_list.html''
<code>
<code>
<QuerySet [<Billet: My second post>, <Billet: My first post>]>
<QuerySet [<Billet: My second post>, <Billet: My first post>]>
Ligne 33:
Ligne 33:
Cela signifie que Django l'interprète comme une liste d'objets. Essayez de vous rappeler comment afficher des listes en Python. Dans un template Django, vous pouvez les écrire de la façon suivante :
Cela signifie que Django l'interprète comme une liste d'objets. Essayez de vous rappeler comment afficher des listes en Python. Dans un template Django, vous pouvez les écrire de la façon suivante :
-
blog/templates/blog/post_list.html
+
''blog/templates/blog/post_list.html''
<code>
<code>
{% for billet in billets %}
{% for billet in billets %}
Ligne 46:
Ligne 46:
Ça marche ! Cependant, nous aimerions plutôt afficher les billets à la manière des billets statiques, comme lorsque nous les avions créés dans le chapitre Introduction au HTML. Vous pouvez mélanger HTML et balises de template. Notre <body> ressemble maintenant à ceci :
Ça marche ! Cependant, nous aimerions plutôt afficher les billets à la manière des billets statiques, comme lorsque nous les avions créés dans le chapitre Introduction au HTML. Vous pouvez mélanger HTML et balises de template. Notre <body> ressemble maintenant à ceci :
Avez-vous remarqué que nous avons utilisé une notation légèrement différente cette fois-ci (''\{\{ billet.title \}\}'' ou ''\{\{ billet.text \}\}'') ? Nous accédons aux données associées à chaque champ défini dans notre modèle Billet. De même, le ''|linebreaksbr'' nous permet de rediriger le texte des billets à travers un filtre qui convertit automatiquement les fins de lignes en paragraphes.
+
Avez-vous remarqué que nous avons utilisé une notation légèrement différente cette fois-ci (''{{ billet.title }}'' ou ''{{ billet.text }}'') ? Nous accédons aux données associées à chaque champ défini dans notre modèle Billet. De même, le ''|linebreaksbr'' nous permet de rediriger le texte des billets à travers un filtre qui convertit automatiquement les fins de lignes en paragraphes.