- 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 rajouter un champ dans notre modèle Shipping Address pour rajouter le pays.Donc le pays, on va utiliser une norme qui s'appelle ISO 3166, comme ceci.
00:00:12 :Et donc cette norme, en fait, c'est tout simplement un code de deux lettres.Des fois, on peut avoir trois lettres également, qui va représenter un pays.
00:00:18 :Par exemple, pour la France, on va avoir FR, pour les Etats-Unis, US, pour le Canada, CA, etc.Donc bien sûr, on n'a pas envie de mettre tout ça à la main.
00:00:26 :On va pouvoir s'aider donc d'un module qui existe, qui s'appelle ISO 3166, tout simplement,qui va nous permettre de récupérer automatiquement ces codes de deux lettres et le nom du pays associé.
00:00:37 :Donc on va installer ce module. Assurez-vous de bien avoir sourcé votre environnement virtuel.Et on va utiliser pip, avec pip install ISO 3166.Une fois que c'est installé, on va faire un pip freeze pour le rajouter dans les dépendances.
00:00:49 :Donc pip freeze requirements.txt. Vous connaissez la chanson.Une fois que c'est fait, on va pouvoir rajouter ces éléments à l'intérieur de notre modèle shipping address.
00:00:58 :Donc tout à la fin, on va rajouter un champ country, qui va être égal à un charField.On va avoir une longueur maximale de deux, puisqu'on va utiliser en fait le code du pays qui est de deux lettres.
00:01:08 :Et ici, on va rajouter un paramètre choice.Donc choice, ça nous permet de donner des choix par défaut qui vont être disponibles pour l'utilisateur.Et le format de choice, en fait, c'est qu'on va avoir une liste de tuples qui vont contenir en premierce qui va être stocké dans la base de données et en second ce qui va être affiché à l'utilisateur.
00:01:26 :Par exemple, pour la France, on aurait dans la base de données FR et à l'utilisateur, on afficherait France.Et on va avoir tous les pays comme ça qui vont être regroupés.
00:01:34 :Donc ce qu'on va faire, c'est utiliser ce fameux module qu'on a installé.Je vais vous montrer comment il fonctionne.Si j'ouvre un interpréteur Python, on va pouvoir importer ISO 3166.
00:01:44 :Et sur ISO 3166, on a un attribut countries.Donc on va pouvoir boucler sur cet attribut.Donc je vais dire pour country in countries.Et si je fais un print de country, vous allez voir qu'on a un objet de type country ici avec le nom.
00:01:59 :Et on a ici dans alpha2 les deux lettres qui correspondent au nom du pays.On a également alpha3 ici avec les trois lettres, etc.Donc on va pouvoir utiliser tout ça pour créer notre liste de tuples.
00:02:10 :Donc ici, je vais faire une compréhension de liste et je vais mettre un tuple ici.En premier, on va mettre le code de deux lettres qu'on va mettre en minuscule.
00:02:18 :Et en deuxième, on va mettre c.name.Et on va dire pour c in countries.Et on va importer countries depuis le module.Donc je vais le mettre tout en haut ici.
00:02:26 :Et on va dire from ISO 3166 import countries tout simplement.Et donc là, ce que ça va faire, c'est boucler sur toutes ces listes de pays.
00:02:34 :Et récupérer dans un tuple, en premier, le code à deux lettres qu'on va mettre en minuscule.Et en deuxième, le nom.Donc on va se retrouver effectivement avec une liste qui va contenir un tuple avec par exemple fr en minuscule, France.
00:02:47 :Ensuite, un autre tuple avec US en minuscule.Et ensuite, Etats-Unis.Donc ça va être Etats-Unis comme ceci.Et donc c'est exactement ce qu'on veut.Et on va avoir toutes ces options ensuite dans l'interface d'administration.
00:03:00 :Donc je vais enregistrer ces changements en faisant les migrations.Python manage.py make migrations.Ensuite, donc là, on a cette fameuse erreur.Puisqu'en fait, on a déjà des éléments, donc des adresses qui n'ont pas une valeur par défaut.
00:03:11 :Donc par défaut, c'est pour le country ici.On va mettre une valeur par défaut.Et par défaut, on va mettre fr.Donc on va considérer par défaut que tout le monde se trouve en France.
00:03:20 :Et qu'on pourra le modifier par la suite.Donc je valide.Et on va faire ensuite python manage.py migrate pour appliquer ces migrations.Je vais également enregistrer ce modèle dans l'interface d'administration.
00:03:31 :Donc dans le fichier admin.py.Donc dans accounts, ici, admin.py.On duplique cette ligne et on met shipping address.Et on va importer cette classe qui se trouve dans le même module.
00:03:42 :On va aller voir dans l'interface d'administration.Ici, donc là, j'actualise.Je me connecte.Alors là, je dois utiliser cette fois-ci l'adresse email.Puisqu'on avait modifié notre modèle utilisateur.
00:03:53 :Donc c'est l'adresse email qu'on utilise pour s'authentifier.Je me connecte.Et on va aller voir dans shipping address ici.Je vais en ajouter une pour vous montrer ce que ça donne.
00:04:00 :Donc on a bien notre utilisateur ici.Je peux utiliser Patrick, mettre des informations.Vous voyez qu'on a bien le help text qui est affiché ici.
00:04:07 :Directement en dessous du champ.Et on a la liste de country ici.Donc on peut aller chercher par exemple le Canada.Qui doit être dans les C ici.
00:04:15 :Voilà, Canada.Et donc vous voyez qu'on a bien cet affichage du côté de l'utilisateur.Qui est avec le nom complet du pays.Et si j'enregistre cette adresse.
00:04:23 :Donc je vais mettre par exemple ici maison.On va dire 140 rue du chemin vert.Hop, 75 000 Paris.Et on va laisser le Canada juste pour l'exemple.
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.