- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Maintenant que notre utilisateur a la possibilité d'ajouter des éléments dans son panier il va bienfalloir lui afficher parce que pour l'instant, à part en passant par l'interface d'administration,on n'a aucune idée de ce qui est contenu à l'intérieur de notre panier. Donc ce qu'on va
00:00:13 :faire c'est rajouter là encore un chemin d'URL, vous commencez à être habitué. Donc le chemind'URL ça va tout simplement être cart, on va créer une vue qui n'existe pas encore mais quiva s'appeler cart et le nom ça va être, vous l'avez deviné, cart tout simplement. Donc on
00:00:27 :va retourner dans notre fichier views qui correspond au store, donc storeviews.py etaprès cette vue ici on va faire une vue cart qui va prendre la requête. On n'a aucun paramètre à
00:00:38 :passer à cette URL, on veut juste afficher le panier de l'utilisateur qui est connecté. Donclà on va importer cette vue à l'intérieur de notre fichier, donc ici dans store.views on ajoute
00:00:49 :à la fin la vue cart. On va également créer un fichier html qui va être à l'intérieur denotre application, donc je vais faire un petit peu de ménage ici. Dans store ici on va faire,
00:01:00 :je vais tout simplement dupliquer ce fichier comme ça on aura déjà le extend donc cart.html,j'ai fait ctrl c, ctrl v, refactor et comme ça on a automatiquement le fichier cart.html qui est
00:01:11 :créé. Et on va enlever tout ça ici, on va juste garder le extend et les blocs de contenu et on varetourner ce template dans notre vue ici. Donc dans cette vue ici on fait un return, on utilise
00:01:23 :la fonction render, on passe la requête, on passe le fichier html donc qui va être dans storeslash cart.html et en contexte on va devoir lui passer le panier de l'utilisateur qu'on va donc
00:01:36 :récupérer ici dans une variable qu'on va appeler cart et qui va être égale à get object or 404.Donc cette fonction bien utile qui nous permet de récupérer un objet s'il existe et s'il n'existepas et bien on renverra une page d'erreur 404. Donc on souhaite récupérer un objet de type cart
00:01:53 :et on souhaite récupérer l'objet dont le user est égal à request.user. Donc on va justerenseigner l'utilisateur associé à la requête, on l'envoie au paramètre user sur le modèle cartet s'il existe et bien on récupère cet objet dans la variable cart. On va le passer en contexte ici
00:02:09 :donc contexte égal, on met un dictionnaire, on va créer une clé qui va s'appeler exactement de lamême façon cart, il n'y a pas de raison de changer ou d'utiliser un truc plus complexe. Et donc à
00:02:19 :l'intérieur de ce fichier ici on va pouvoir passer tous les éléments qui sont contenus dans notrepanier. Alors là on peut le faire à différents niveaux, je pourrais, là vous voyez que j'ai
00:02:26 :passé en fait directement le cart, en fait ce qui m'intéresse c'est plutôt les articles qui sont àl'intérieur du panier, donc ce que je pourrais faire c'est plutôt passer les orders, donc jevais faire cart.orders.all et dans ce cas-ci on va tous les passer, on n'a pas de raison de faire
00:02:39 :quelques filtres que ce soit, on va juste passer tous les éléments qui sont à l'intérieur denotre panier. Donc là on va avoir une variable orders qu'on va pouvoir utiliser dans le fichier
00:02:46 :HTML pour faire une boucle, donc on va faire une boucle for et on va dire pour order in orders eton va fermer notre boucle avec la balise qui ferme ici. Donc je vais un peu plus vite là mais vous
00:02:56 :voyez que c'est toujours un peu la même chose, donc je vais pas m'attarder sur chaque détail,c'est des choses qu'on a déjà faites. Donc je vais faire un h2, on va mettre le order.product.name
00:03:05 :puisque là on n'a pas de name directement sur l'objet order, si on retourne voir dans nosmodèles, on a ici donc le product et dans order on n'a pas de name, on a le produit associé et leproduit lui il a un name. Donc dans notre vue cartes ici, on va passer .orders.product.name,
00:03:23 :on va récupérer déjà le produit associé. Ensuite on va mettre l'image, donc on va refaire, je vaisaller copier ce que j'avais dans la vue de détail puisque on a le petit style ici qui va nouspermettre, voilà le style max-width qu'on va utiliser, donc j'ai pas envie de tout retaper.
00:03:37 :Là qu'est ce qu'on va aller chercher, et bien encore une fois on va passer par le order.product,donc là ça commence à faire pas mal de choses, order.product.thumbnail.url, là aussi pareil
00:03:47 :order.product.name, le style ça reste la même chose et on va afficher tout simplement laquantité, donc je vais faire un order.quantity et on va dire dans le panier, donc par exemple on
00:04:00 :en a cinq dans le panier. Donc normalement c'est tout bon, on boucle à partir de cette variablepour récupérer chaque order, on affiche ensuite le nom du produit, le thumbnail, donc l'image et laquantité qu'on a dans le panier. Donc je reviens sur mon site, j'actualise et là alors on s'est
00:04:17 :encore déconnecté donc je vais juste me reconnecter, voilà et on va aller voir donc à l'url slashcarte, je valide avec entrée et bien sûr on rajoutera un lien prochainement pour pouvoiraccéder avec un bouton à cette url. Donc là je remarque que j'ai bien les sneakers, que j'en
00:04:35 :ai deux dans le panier, donc ça correspond bien à ce que j'avais dans mon interfaced'administration. Donc ça fonctionne, je vais rajouter un autre élément, je vais rajouter
00:04:43 :celle-ci par exemple, voir l'article, ajouter dans le panier, voilà. Là j'ai pas vraiment de feedback,pour l'instant c'est très simpliste, dans la prochaine partie on va rajouter une ligne pourafficher le panier si on en a un et afficher combien d'éléments il y a à l'intérieur. Comme
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.