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 [2020/12/01 12:36] – 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 ==== | ||
| + | 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' | ||
| + | |||
| + | Ok, et sinon, on fait comment ? | ||
| + | |||
| + | Nous allons avoir besoin d' | ||
| + | |||
| + | '' | ||
| + | <code python> | ||
| + | from django.shortcuts import render | ||
| + | |||
| + | def post_list(request): | ||
| + | return render(request, | ||
| + | </ | ||
| + | |||
| + | Est-ce que vous vous souvenez de comment rajouter des morceaux de code écrits dans d' | ||
| + | |||
| + | '' | ||
| + | <code python> | ||
| + | from django.shortcuts import render | ||
| + | from .models import Billet | ||
| + | </ | ||
| + | |||
| + | 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' | ||
| + | |||
| + | === QuerySet === | ||
| + | |||
| + | Normalement, | ||
| + | |||
| + | 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 ! | ||
| + | |||
| + | '' | ||
| + | <code python> | ||
| + | Billet.objects.filter(published_date__lte=timezone.now()).order_by(' | ||
| + | </ | ||
| + | |||
| + | Ouvrons donc le fichier '' | ||
| + | |||
| + | '' | ||
| + | <code python> | ||
| + | from django.shortcuts import render | ||
| + | from django.utils import timezone | ||
| + | from .models import Billet | ||
| + | |||
| + | def post_list(request): | ||
| + | billets = Billet.objects.filter(published_date__lte=timezone.now()).order_by(' | ||
| + | return render(request, | ||
| + | </ | ||
| + | |||
| + | Il nous manque encore un petit quelque chose : passer notre QuerySet billets à notre template. Pas d' | ||
| + | |||
| + | 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' | ||
| + | |||
| + | Au final, notre fichier '' | ||
| + | |||
| + | '' | ||
| + | <code python> | ||
| + | from django.shortcuts import render | ||
| + | from django.utils import timezone | ||
| + | from .models import Billet | ||
| + | |||
| + | def post_list(request): | ||
| + | billets = Billet.objects.filter(published_date__lte=timezone.now()).order_by(' | ||
| + | return render(request, | ||
| + | </ | ||
| + | |||
| + | 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' | ||
| + | |||
| + | [[public: | ||