- 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 :La seule chose qui manque maintenant c'est d'afficher cette adresse par défaut sur monprofil puisque si je vais sur mon profil là j'ai bien les deux adresses qui sont affichées mais jene sais pas quelle adresse est l'adresse par défaut et je ne peux pas la modifier. Donc on n'a pas
00:00:13 :envie d'aller faire cette opération directement via l'interface d'administration et donc on vadevoir rajouter ces éléments directement dans le fichier HTML. Donc la première chose que je vais
00:00:23 :faire c'est modifier un petit peu le template qu'on avait pour l'adresse donc si je vais voirc'est pas sur mon profil directement c'est dans le include qu'on avait fait donc on va se rendresur le fichier adresse.html ici et on va rajouter des indications pour dire si l'adresse est l'adresse
00:00:38 :par défaut ou non. Donc à côté du nom de l'adresse ici je vais faire une structure conditionnelle onva dire if adresse.default donc si cette adresse est l'adresse par défaut on va rajouter tout
00:00:48 :simplement tirer défaut comme ceci et on n'oublie pas le endif. Donc normalement déjà on devraitpouvoir afficher comme ceci quelle est l'adresse par défaut donc si je reviens et que j'actualiselà c'est domicile actuellement qui est par défaut et là si je change si je mets celle-ci à la place
00:01:05 :et que je reviens sur le travail pour la décocher donc là je le fais à la main c'est juste pouraller un peu plus vite j'actualise et là alors j'ai dû intervertir les deux là actuellement c'estdomicile qui est par défaut donc ça veut dire qu'il faut que je décoche celle-ci et que je coche
00:01:20 :travail à la place. Donc je reviens j'actualise et c'est bon on a bien le défaut qui change etmaintenant on va rajouter tout simplement un lien avec une url et une vue qui va nous permettre dechanger tout ça. Donc à la fin ici je vais rajouter un lien donc on va dire see not address.default
00:01:38 :donc si cette adresse n'est pas par défaut on veut pouvoir afficher un lien qui va nouspermettre de la passer par défaut et si cette adresse est par défaut on ne va pas afficherde lien puisqu'elle est déjà par défaut. Donc ce que je vais faire c'est un lien href comme ceci
00:01:53 :donc un tag A. Pour l'instant on n'a pas encore créé l'url dans le fichier d'url mais on va déjàla mettre ici. On va l'appeler set default shipping par exemple et on va devoir indiquer en fait
00:02:05 :quelle est l'adresse. Donc dans l'adresse on va récupérer la clé primaire de notre adresse doncon va mettre adresse.pk directement ici et vous allez voir ce que ça donne dans le fichier d'url
00:02:14 :dans deux secondes quand on va l'ajouter. Là je vais mettre le texte par exemple définir par défautet si je reviens sur mon fichier html là on aura une belle erreur puisqu'on n'a pas encore ajoutél'url correspondante donc là il ne trouve pas le chemin d'url. Donc on va remédier à ça on va
00:02:29 :aller dans projet ici et alors je vais faire un petit peu de ménage l'url il est dans shop dansurls.py on a nos url ici et on va rajouter le chemin d'url. Donc ce chemin d'url on le va mettre
00:02:41 :par exemple juste après profil je vais dupliquer tout ça et on va dire set default shipping et làje vais rajouter l'élément qui va me permettre de récupérer dans ce chemin d'url le pk donc leadresse.pk que l'on passe dans notre template d'url. Donc ici je vais rajouter avec les crochets on va
00:03:01 :récupérer un int donc un nombre entier puisque les clés primaires ce sont des nombres entiers etici à la place de profil je vais faire une vue qui n'existe pas encore mais qu'on va appelertout simplement set default shipping address et on va mettre ici set default shipping puisque
00:03:17 :c'est le nom qu'on avait mis à l'intérieur ici donc set default shipping c'est le même nom qu'ilfaut utiliser bien sûr pour pouvoir utiliser cette valise d'url. Donc on va aller créer cette
00:03:26 :méthode je vais déjà faire l'import également on va le faire à l'intérieur de accounts.viewsdonc je vais le mettre ici et dans accounts.views qui doit être ce fichier alors c'est pas celui ci
00:03:38 :celui ci c'est celui du store on va aller dans accounts.views et donc ici on va rajouter unefonction qui va s'appeler set default alors je crois que j'avais mis voilà set default shippingaddress on va récupérer la requête et la clé primaire et pour l'instant je vais mettre un
00:03:55 :pass je vais également rajouter un décorateur login required puisque on ne veut pouvoirmodifier l'adresse par défaut que si l'utilisateur est connecté bien entendu. Donc là on a tout le
00:04:06 :chemin je suis allé assez vite là encore mais c'est quelque chose qu'on refait depuis pas malde temps maintenant donc vous commencez à connaître la chanson on a notre chemin d'url iciqui va envoyer donc vers cette vue set default shipping et grâce à ce int pk ici on va pouvoir
00:04:22 :récupérer l'adresse donc ça on va le faire à l'intérieur de notre vue donc on va récupérerdans une variable adresse avec get object or 404 donc là je l'ai pas encore importé ici dans cettevue donc on va faire option entrée à partir de django.shortcuts on importe donc cette fonction
00:04:39 :ici qui va me permettre de récupérer l'adresse si elle existe à partir de shipping address et jevais également importer ce modèle puisqu'il n'est pas importé à l'intérieur de ce fichier. On va lui
00:04:50 :passer le pk donc pk qui est égal à pk tout simplement donc cette variable que l'on arécupéré ici et si cette adresse existe et bien on va pouvoir l'asséter par défaut donc si ellen'existe pas ça va lever une erreur 404 et on ne passera pas à cette ligne et si par contre cette
00:05:05 :adresse existe et bien on va l'asséter par défaut comme ceci et là vous voyez que là encore on n'apas l'auto completion donc ce qu'on pourrait faire c'est exactement la même chose c'est àdire mettre ici une annotation de type et là vous voyez qu'il retrouve bien le set default puisqu'il
00:05:20 :comprend maintenant que cette variable c'est une variable qui correspond à une instance deshipping address puisqu'il n'est pas intelligent il n'est pas suffisamment intelligent en fait pourcomprendre lui même qu'avec cette fonction ici get object or 404 on va récupérer une instancede ce modèle donc avec les annotations de type là encore on peut spécifier de quel type va être
00:05:37 :cette variable pour avoir l'auto completion et ensuite qu'est ce qu'on va faire bien on va toutsimplement rediriger vers le profil avec un redirect comme ceci alors je ne sais pas s'ilest importé s'il est importé puisque effectivement on avait déjà fait des redirects ailleurs dans cefichier donc normalement tout est bon on a notre lien on va aller tester tout ça sur notre site
00:05:57 :donc j'actualise cette fois ci ça fonctionne donc là on n'a pas le lien sur la première adressepuisque c'est déjà l'adresse par défaut sur la deuxième on a le lien et on voit tout en bas icicette default shipping avec le primary key qui est égal à 4 donc je clique et normalement voilà ça
00:06:14 :fonctionne on a bien le défaut qui se déplace sur cette adresse et le lien qui est maintenantdisponible sur l'autre donc je peux cliquer sur définir par défaut ici pour repasser cetteadresse par défaut donc ça fonctionne on a maintenant tous les éléments de cette gestiond'adresse vous voyez qu'il y avait pas mal de choses à prendre en compte autant du côté de
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.