Créer le modèle utilisateur
Exclusif Premium
Débloquez votre potentiel ! ✨
Cette session fait partie de notre programme Premium exclusif
+100h de formations exclusives
+180 exercices de code avancés
+100h de mentorats en réécriture
20 projets guidés pas à pas
Mentorats groupés hebdomadaires
Support individuel avec nos mentors
Prêt à passer au niveau supérieur ?
Découvrez tous les avantages Premium et transformez votre apprentissage dès aujourd'hui!
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte00:00:00 :Dans cette partie, on va créer un modèle personnalisé pour nos utilisateurs.Généralement, c'est quelque chose qu'on essaie de faire au tout début,avant même de créer la base de données et de créer un utilisateur,comme on l'a fait jusqu'à présent, puisqu'on a créé un super utilisateurpour pouvoir créer des produits.
00:00:16 :Donc, généralement, c'est quelque chose qu'on fait avant de créer la base de données,puisque si vous changez le modèle utilisateur en cours de route,une fois que votre base de données est déjà créée,ça peut créer beaucoup de problèmes.
00:00:26 :Donc là, on le fait un petit peu après,puisqu'on n'a pas grand chose dans notre base de données,donc ce n'est pas bien grave.On peut la supprimer et la recréer,mais je préfère vous avertir, normalement, on préfère faire ça tout au début.
00:00:37 :Donc la première chose qu'on va faire, c'est créer une nouvelle applicationdans notre projet, puisque pour l'instant, on a une application pour notre boutiqueet, généralement, on préfère séparer la gestion des comptes utilisateursdans une application dédiée.
00:00:50 :Donc, dans mon terminal, je vais refaire python manage.pyet on va utiliser de nouveau la commande startuppour créer une application qu'on va appeler account, tout simplement.
00:00:59 :Je valide avec entrée et j'ai bien mon application qui a été ajoutée ici.Donc maintenant, il ne faut pas oublier d'aller la rajouterdans le fichier de settings, dans les installed apps.
00:01:08 :Donc c'est quelque part tout au début, voilà ici.Après le store, je vais dupliquer cette ligne et mettre à la place accountspour que Django soit au courant qu'on a une nouvelle application.
00:01:17 :Donc maintenant, ce que je vais faire, c'est rajouter le modèle d'utilisateur,donc dans accounts ici, dans models.Je vais créer une classe pour nos utilisateurs.
00:01:25 :Donc là, il y a deux classes que vous allez rencontrer,AbstractUser et AbstractBaseUser.Et nous, dans notre cas, on va utiliser AbstractUser.C'est quoi la différence entre les deux ?
00:01:37 :AbstractBaseUser, il n'y a vraiment quasiment rien dedans,à part la gestion du mot de passe, de l'authentification,donc ces choses-là, mais il n'y a pas de fields,donc de champs qui sont déjà générés.
00:01:47 :Donc c'est parfait si vous voulez créer des utilisateursqui ont des champs personnalisés.Par exemple, si vous souhaitez ne pas avoir de nom d'utilisateurou si vous souhaitez avoir d'autres champsqui ne sont pas forcément les champs qu'on retrouve généralementdans un compte utilisateur,comme le nom d'utilisateur, le mot de passe, etc.
00:02:02 :Eh bien là, c'est une bonne idée d'utiliser AbstractBaseUser.Dans notre cas, on cherche à avoir quelque chose d'assez classiqueavec un nom d'utilisateur et un mot de passe,donc on va uniquement hériter de AbstractUser.
00:02:14 :Donc on va créer notre classe, je vais l'appeler dans mon cas Shopper.On pourrait l'appeler n'importe comment,on peut l'appeler généralement CustomUser.Là, je vais l'appeler Shopper puisqu'on fait une application d'e-commerce.
00:02:24 :Donc voilà, on va avoir quelqu'un qui magazine sur la boutiqueet on va hériter de AbstractUser.Donc cette classe qui n'est pas encore importée dans mon fichier.
00:02:34 :Donc je vais faire encore option entréeet vous voyez que c'est très pratiquepuisqu'on a un nom un peu à rallonge ici,DjangoContribHotModels,et donc cette classe se trouve à l'intérieur de tout ça.
00:02:45 :Donc on hérite de AbstractUseret pour l'instant, on va juste mettre un passe.On va également supprimer le Models iciet supprimer ce commentaire puisqu'on n'en a pas besoin.
00:02:54 :Pour l'instant, on ne va rien modifier,on va juste laisser le passe icipuisqu'on va utiliser les mécaniques de base d'AbstractUser.Si on se rend dans la définition de cette classe,en faisant un clic droit, vous pouvez aller dans Go Toet vous avez Declaration or Usage,le raccourci c'est Command B sur macOS,
00:03:12 :et vous allez voir la classe qui est définie iciet on retrouve les différents champscomme le nom d'utilisateur, donc UserName ici,qui est tout simplement un champ de type CharFieldavec une longueur maximale, etc.
00:03:22 :On a également FirstName, LastName,Email, IsStaff, IsActive,donc toutes les choses que l'on avait retrouvéesquand on avait créé notre super utilisateur.Donc nous, on n'a pas besoin de plus pour l'instant,si on voulait on pourrait rajouter d'autres champs,mais nous on veut juste hériter de AbstractUseret donc ça, comme je vous le disais,
00:03:38 :c'est quelque chose qu'on fait généralement au tout début,comme ça au moins on a notre propre classequi hérite de la classe de base,mais après ça nous permet de l'étendresi on veut de rajouter des informationssans avoir besoin de changer de classe en cours de route.
00:03:50 :Donc ce qu'on va faire maintenant,c'est indiquer à Django que c'est cette classequi va être utilisée pour le modèle d'utilisateuret ça il faut aller le fairedans le fichier de Settings.
00:04:00 :Donc dans Settings.py,je l'avais déjà ouvert ici,on va descendre tout en bas, donc il n'y a pas vraiment d'endroitoù le mettre, vous pouvez le mettre n'importe où dans le fichier,mais comme c'est quelque chose que l'on rajoute,on va le mettre tout à la fin, après ce qu'on avait rajouté
00:04:12 :et cette variable qu'on doit créerc'est Auth-User-Model.Et ce qu'il faut mettre,c'est, entre chaînes de caractère,le nom de l'application et le nom de la classe.
00:04:22 :Donc le nom de l'application c'est Accountset le nom de la classe c'est Shopper.Donc attention ici, il ne faut pas mettre Models.Shopper,c'est vraiment juste le nom de l'applicationet la classe qui représententle modèle d'utilisateur.
00:04:34 :Donc une fois qu'on a fait tout ça, on va pouvoir recréercette fois-ci l'émigration et notre basede données, donc je vais supprimer le fichierdb.sqlite que j'avais ici,
00:04:42 :je le supprime entièrement,je valide le refactor iciet dans le terminal je vais donc recréerl'émigration avec ce nouveau modèled'utilisateur, donc python-manage.pymake-migration.
00:04:54 :Là ça va nous créer le modèle Shopperdans notre fichier d'émigration ici,donc dans l'initial de notreapplication Accountset on va pouvoir appliquer ces migrations,donc python-manage.py migrate
00:05:06 :et là vous allez voir que ça va refaire toutes les migrationspuisqu'on a supprimé notre base de donnéesdonc ça va refaire l'émigration de base avecl'authentification, l'admin, etc.
00:05:14 :On va donc également retrouver les migrationspour notre boutique, donc store initialet store product slug, quand on avait rajoutéle slug du produit et on va retrouverpour les accounts ici, elle est cachéeun petit peu au milieu, accounts001 initial, donc qui correspond à cettemigration ici, qui nous permet de renseigner
00:05:30 :notre modèle personnalisé comme classepour gérer les utilisateurs.On va pouvoir recréer maintenant notre superutilisateur, donc python-manage.pycreate super userje vais mettre le même nom d'utilisateur,l'adresse électronique,le mot de passeet voilà, on a doncrecréé notre super utilisateuret vous pouvez également retourner créerles sneakers dans la base de données
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.