- 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 :Dans cette partie, on va créer le dernier modèle qui est le modèle qui va nous permettre de créer un panier pour l'utilisateur.Donc on va le créer juste en dessous des notes que je m'étais faites ici.
00:00:10 :On va donc l'appeler cart tout simplement qui est le mot anglais qui signifie panier et on y rite là encore de models.models.On va le rattacher à un utilisateur et dans ce cas-ci on va utiliser un one-to-one field à la place d'un foreign key.
00:00:26 :Alors pourquoi ? Eh bien tout simplement parce que dans ce cas-ci on va considérer qu'un utilisateur ne peut avoir qu'un seul panier.Un utilisateur ne peut pas avoir plusieurs paniers différents. On pourrait avoir ce cas de figure sur un site d'e-commerce
00:00:37 :mais dans mon cas je vais considérer que l'utilisateur ne peut avoir qu'un seul panier.Donc dans ce cas-ci j'utilise un one-to-one field.On pourrait également utiliser un foreign key et s'assurer en fait d'une façon ou d'une autre que l'utilisateur ne puisse pas créer plusieurs paniersmais c'est plus simple dans ce cas-ci de directement restreindre cette possibilité avec un one-to-one field.
00:00:56 :A savoir qu'on peut aussi faire le même comportement avec un foreign key en passant la clé unique égale à true.Donc ça revient au même. Dans ce cas-ci moi je préfère du coup directement faire un one-to-one field et je n'ai pas besoin donc de passer ce paramètre.
00:01:09 :Donc maintenant que c'est fait le one-to-one field à quoi on va le connecter au AuthUserModel.Donc exactement la même chose que ce qu'on avait pour le order ici avec le user qui était connecté à notre modèle utilisateur.
00:01:21 :Et de la même façon pour le onDelete on va préciser modèle.cascade puisque si l'utilisateur est supprimé on veut également supprimer le panier associépuisque dans ce cas-ci il ne peut y en avoir qu'un seul avec le one-to-one.
00:01:33 :Ensuite qu'est-ce qu'on va avoir ? On va avoir des orders.Donc ça c'est pour le coup un many-to-many field.Pourquoi ? Et bien parce qu'on a plusieurs articles qui peuvent être ajoutés à l'intérieur du panier.
00:01:44 :Donc qu'est-ce qu'on va mettre là-dedans ? On va mettre order.Donc ça c'est le nom de la classe qu'on a défini juste en haut donc on peut juste le mettre comme ceci.
00:01:51 :Ensuite on va avoir un boolean qui est donc commandé ou non ici qui va être donc tout simplement un boolean field qu'on va mettre par défaut à falsepuisque par défaut on considère que le panier n'a pas été commandé.
00:02:03 :Et pour finir on va mettre la date de la commande.Donc je vais faire un field que je vais appeler OrderedDate et on va avoir un DateTimeField qui va pouvoir être blank.
00:02:13 :Et on va également mettre null égale à true puisque là encore on a un field qui n'est pas de type texte.Donc pour pouvoir le mettre blank à true il faut également mettre null à true pour que dans la base de données on puisse mettre une valeur nulle comme celle-ci pour un objet de type date.
00:02:28 :Pour finir on va tout de suite rajouter dans la méthode String ce qu'on veut afficher dans l'interface d'administration.Dans ce cas-ci je vais vouloir afficher le nom d'utilisateur.
00:02:37 :Donc je vais retourner self.user.username donc le nom d'utilisateur de l'utilisateur qui est associé à ce panier.Comme ça ce sera assez explicite les paniers qu'on a dans notre interface d'administration.
00:02:48 :Donc maintenant que c'est fait on va pouvoir créer nos modèles.Donc vous commencez à connaître la chanson python manage.py make migrations qui va nous permettre de créer les migrations pour ce modèle.
00:02:58 :Et ensuite migrate pour appliquer ces migrations dans la base de données.Donc là ça va nous permettre de créer un panier.On va l'ajouter dans l'interface d'administration également en dupliquant cette ligne.
00:03:09 :Donc on va importer cartes, on va dupliquer et on registre ce modèle.Et si je retourne voir dans l'interface d'administration que j'actualise.Alors je vais juste me reconnecter puisque je n'étais plus connecté.
00:03:21 :On a bien les paniers ici cartes donc je vais essayer d'en ajouter un.On va l'associer à un utilisateur.On va dire que c'est relié à l'order donc sneakers que j'avais créé.
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.