Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
public:appro-s7:td_web:donnees-dynamiques [2019/11/23 23:54] – créée 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: |