Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
public:appro-s7:td_web:donnees-dynamiques [2023/10/30 10:55] – edauce | public:appro-s7:td_web:donnees-dynamiques [2023/10/30 22:55] (Version actuelle) – edauce | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | 11. Données dynamiques dans les templates | + | ==== 11. Données dynamiques dans les templates |
- | Nous avons différents morceaux en place : le modèle Billet qui est défini dans le fichier models.py, la vue post_list dans views.py et nous venons de créer notre template. Mais comment allons-nous faire pour faire apparaître nos billets dans notre template HTML ? Car au final, n' | + | Nous avons différents morceaux en place : le modèle |
C'est à ça que servent les vues : connecter les modèles et les templates. Dans notre vue post_list, nous allons avoir besoin de prendre les modèles dont nous avons besoin et de les passer au template. C'est dans la vue que nous allons décider ce qui va s' | C'est à ça que servent les vues : connecter les modèles et les templates. Dans notre vue post_list, nous allons avoir besoin de prendre les modèles dont nous avons besoin et de les passer au template. C'est dans la vue que nous allons décider ce qui va s' | ||
Ligne 7: | Ligne 7: | ||
Ok, et sinon, on fait comment ? | Ok, et sinon, on fait comment ? | ||
- | Nous allons avoir besoin d' | + | Nous allons avoir besoin d' |
- | + | ||
- | blog/ | + | |
+ | '' | ||
+ | <code python> | ||
from django.shortcuts import render | from django.shortcuts import render | ||
def post_list(request): | def post_list(request): | ||
return render(request, | return render(request, | ||
+ | </ | ||
- | Est-ce que vous vous souvenez de comment rajouter des morceaux de code écrits dans d' | + | Est-ce que vous vous souvenez de comment rajouter des morceaux de code écrits dans d' |
- | + | ||
- | blog/ | + | |
+ | '' | ||
+ | <code python> | ||
from django.shortcuts import render | from django.shortcuts import render | ||
from .models import Billet | from .models import Billet | ||
+ | </ | ||
- | Le point avant models signifie " | + | Le point avant models signifie " |
- | Ok, et après ? Afin de pouvoir aller chercher les véritables billets de blog de notre modèle Billet, nous avons besoin de quelque chose qui s' | + | Ok, et après ? Afin de pouvoir aller chercher les véritables billets de blog de notre modèle Billet, nous avons besoin de quelque chose qui s' |
- | QuerySet | + | === QuerySet |
Normalement, | Normalement, | ||
Ligne 33: | Ligne 35: | ||
Maintenant, nous allons nous intéresser à comment publier les billets classés par date de publication (published_date). Ça tombe bien, on a déjà fait ça dans la section sur les QuerySets ! | Maintenant, nous allons nous intéresser à comment publier les billets classés par date de publication (published_date). Ça tombe bien, on a déjà fait ça dans la section sur les QuerySets ! | ||
- | blog/ | + | '' |
+ | <code python> | ||
Billet.objects.filter(published_date__lte=timezone.now()).order_by(' | Billet.objects.filter(published_date__lte=timezone.now()).order_by(' | ||
+ | </ | ||
- | Ouvrons donc le fichier blog/ | + | Ouvrons donc le fichier |
- | + | ||
- | blog/ | + | |
+ | '' | ||
+ | <code python> | ||
from django.shortcuts import render | from django.shortcuts import render | ||
from django.utils import timezone | from django.utils import timezone | ||
Ligne 48: | Ligne 51: | ||
billets = Billet.objects.filter(published_date__lte=timezone.now()).order_by(' | billets = Billet.objects.filter(published_date__lte=timezone.now()).order_by(' | ||
return render(request, | return render(request, | ||
+ | </ | ||
Il nous manque encore un petit quelque chose : passer notre QuerySet billets à notre template. Pas d' | Il nous manque encore un petit quelque chose : passer notre QuerySet billets à notre template. Pas d' | ||
Ligne 53: | Ligne 57: | ||
Veuillez noter que nous créons une variable pour notre QuerySet : billets. Considérez que c'est le nom de notre QuerySet. À partir de maintenant, nous allons pouvoir faire référence à notre QuerySet en utilisant ce nom. | Veuillez noter que nous créons une variable pour notre QuerySet : billets. Considérez que c'est le nom de notre QuerySet. À partir de maintenant, nous allons pouvoir faire référence à notre QuerySet en utilisant ce nom. | ||
- | Dans la fonction render, nous avons un paramètre request, qui désigne tout ce que nous recevons d'un utilisateur par l' | + | Dans la fonction render, nous avons un paramètre request, qui désigne tout ce que nous recevons d'un utilisateur par l' |
- | + | ||
- | Au final, notre fichier blog/ | + | |
- | blog/ | + | Au final, notre fichier '' |
+ | '' | ||
+ | <code python> | ||
from django.shortcuts import render | from django.shortcuts import render | ||
from django.utils import timezone | from django.utils import timezone | ||
Ligne 66: | Ligne 70: | ||
billets = Billet.objects.filter(published_date__lte=timezone.now()).order_by(' | billets = Billet.objects.filter(published_date__lte=timezone.now()).order_by(' | ||
return render(request, | return render(request, | ||
+ | </ | ||
Et voilà, c'est bon ! Nous allons retourner du côté de notre template pour que notre QuerySet puisse s' | Et voilà, c'est bon ! Nous allons retourner du côté de notre template pour que notre QuerySet puisse s' | ||
- | Si vous voulez en savoir plus sur les QuerySets, n' | + | Si vous voulez en savoir plus sur les QuerySets, n' |
+ | [[public: |