- 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 personlive_helpToutes les questions
Gabriel Trouvé
16 mars 2023 - 16 mars 2023 à 6:51
checkConversation résolue
6 réponses
Les relations entre modèles (One to One)
Bonsoir,{% if user.cart %} <a href="{% url 'cart' %}">Mon panier ( {{ user.cart.orders.count }} )</a> <!-- utilisateur - paniers - articles que l'on compte --> {% endif %} class Cart(models.Model): …
00:00:00 :Dans cette partie, ça va être très rapide, on va tout simplement ajouter un lien sur la page qui nouspermet d'accéder directement à notre panier, donc ne pas passer par l'URL, personne ne fait ça,on va avoir un bouton qui va nous permettre d'y accéder. Donc je vais me rendre dans le
00:00:13 :fichier base.html, donc le fichier de base de notre application qui est dans le dossier templates etdans ce fichier base.html, on va vérifier déjà si l'utilisateur dispose d'un panier et si c'est
00:00:26 :le cas, eh bien on va l'afficher. Donc je vais afficher ça, on va le mettre en dessous de laconnexion, après bon là pour l'instant c'est très basique, on fait aucun css, tout est un peupelmel comme ça dans le fichier html, mais pour l'instant ce n'est pas le frontend qui nous
00:00:41 :intéresse. Donc je vais juste le rajouter après les boutons de connexion. On va mettre ici doncune condition, puisqu'on ne veut pas afficher le panier s'il n'y en a pas, on veut juste afficherle panier si l'utilisateur en a un. Donc je vais mettre une condition avec un if et on va tout
00:00:54 :simplement faire if user.cart, puisque dans notre modèle on a une relation one to one, doncuser.cart en fait ça va nous retourner directement le panier de l'utilisateur s'il y en a un. On
00:01:06 :n'oublie pas de fermer la balise sinon on aura une erreur et donc si on a un panier, eh bien on vafaire un lien qui va rediriger vers la vue qui correspond au panier. Donc c'était la vue cart
00:01:16 :tout simplement, je crois qu'on l'avait nommé comme ceci, je vais aller revérifier dans lefichier d'url, voilà cart donc c'est bien le nom de la vue. Donc dans le fichier base ici je mets
00:01:24 :bien url cart tout simplement et on va dire voir le panier. Et moi ce que j'aimerais bien c'estégalement afficher combien d'éléments il y a dans mon panier. Donc je vais mettre entre parenthèses
00:01:34 :une variable qui va être tout simplement user.cart.orders.count. Donc ça fait beaucoup dechoses, là en fait on va tout simplement récupérer le panier de l'utilisateur, ce panier il va avoirdes ordres donc des articles, orders ici, et ce qu'on souhaite c'est pas récupérer directementces orders mais savoir combien il y en a. Donc pour ça on peut utiliser count qui est une méthode
00:01:55 :qui nous permet de récupérer le nombre d'éléments qui sont dans ce query set. Donc le query set c'esttout simplement les éléments de notre base de données. Donc comme ça si on a deux éléments qui
00:02:05 :sont dans ce panier et bien ici on aura deux d'affichés. Donc on va vérifier si ça fonctionne,je reviens sur la page, j'actualise, j'ai bien voir le panier ici alors je vais le mettre dansun p tout simplement juste pour faire un petit bloc comme ça ce sera à la ligne. Voilà donc voir le
00:02:20 :panier et on a bien le 2 entre parenthèses puisqu'on avait ajouté plusieurs choses dans lepanier, on avait ajouté les sneakers simple et les sneakers wow et donc ça fonctionne on peutaccéder à notre panier, on peut revenir sur la page d'accueil et si je vais sur l'interfaced'administration pour supprimer le panier on va juste vérifier quand même que si je supprime
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.