- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
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

bsao17
5 octobre 2023 - 05 octobre 2023 à 9:08
checkConversation résolue
4 réponses
Mais combien de façon de s'authentifier avec django !!!!
L'authentification avec Django c'est l'enfer, ça n'est jamais la même chose d'un tuto à l'autre, dans la formation Django, c'est avec BaseUser, dans d'autre on utilise le formulaire de Django, …

Christian Aucane
6 janvier 2023 - 06 janvier 2023 à 11:14
checkConversation résolue
5 réponses
Recuperation de l'utilisateur avec un formulaire qui hérite de UserCreationForm
Bonsoir, j'ai essayé de modifier le code que tu présente en utilisant un UserCreationForm mais je n'arrive pas a récupérer l'utilisateur pour le connecter.
00:00:00 :Maintenant qu'on a créé la page d'inscription, on va devoir récupérer les informations du formulaire pour créer l'utilisateur dans notre base de données.Donc ça on va le faire directement dans la vue sign up ici.
00:00:19 :Puisque quand on arrive sur cette page, là on fait une requête qui est de type GET, on va juste accéder à la page.Et quand on envoie des informations du formulaire, là on va avoir une requête de type POST.
00:00:28 :C'est ce qu'on avait dans le formulaire, si on va voir dans sign up ici, on a mis méthode égale à POST.Donc ça c'est pratique puisqu'on va pouvoir faire différentes actions en fonction du type de requête.
00:00:38 :Le type de requête on peut le récupérer dans request.method.Donc on va faire une structure conditionnelle, on va dire if request.method est égal à POST, comme ceci, donc tout en majuscules.
00:00:49 :Donc si on est en présence d'une requête de type POST, là on va traiter le formulaire.Donc traiter le formulaire, je vais mettre juste un commentaire pour l'instant et un pass.
00:00:58 :Et si ce n'est pas une requête de type POST, et bien on va tout simplement retourner notre template account sign up.Donc qu'est-ce qu'on va faire pour traiter le formulaire ? On va devoir déjà récupérer les informations du formulaire.
00:01:09 :Donc les informations qui sont envoyées avec la requête, elles sont disponibles dans request.POST.Là encore faites bien attention aux majuscules.Et request.POST c'est tout simplement un dictionnaire, donc on va pouvoir récupérer avec la méthode GET les valeurs associées aux clés du dictionnaire.
00:01:24 :Quelles sont ces clés ? Et bien c'est ce qu'on a défini dans le paramètre name ici.Vous voyez qu'à chaque fois dans les deux inputs, dans input ici pour le username et input pour le mot de passe, on a mis une clé name.
00:01:36 :Et c'est ça qui va servir à définir le nom des clés dans le dictionnaire.Donc si on veut récupérer à partir des données qui sont envoyées avec la requête POST la valeur qui est associée à username, il faut utiliser ce nom là dans notre vue.
00:01:56 :On va faire pareil avec le mot de passe, donc dans password, et là on récupère password.Une fois qu'on a ces deux informations, on va pouvoir créer un utilisateur.
00:02:15 :Donc from Django.Contrib.Hot, on va importer GetUserModel.Donc cette fonction c'est une fonction qui va nous permettre de récupérer un objet qui correspond à notre modèle d'utilisateur.
00:02:26 :Dans notre cas ça va être le modèle shopper qu'on a créé pour gérer nos utilisateurs.Donc ce modèle on va le récupérer dans une variable que je vais appeler user tout simplement, et on va appeler cette fonction GetUserModel.
00:02:39 :Et en fait si vous allez inspecter cette fonction en faisant un clic droit et en allant dans le go to declaration or usage,vous allez voir que très simplement qu'est-ce qu'elle fait cette fonction ?
00:02:48 :Et bien elle va récupérer la variable dans les settings HotUserModel.Donc c'est cette variable qu'on avait créée précédemment, HotUserModel, qui va linker notre modèle shopper.
00:02:58 :Donc vous voyez il n'y a pas de magie ici, si vous allez inspecter un petit peu ce qui se passe en arrière-plan,on comprend très rapidement les mécanismes que Django utilise.
00:03:06 :Donc ça, ça va me permettre de récupérer ma classe d'utilisateur,et je vais pouvoir avec cette classe et avec le manager object, donc avec user.object, créer un utilisateur.
00:03:16 :Donc sur cette classe on va avoir CreateUser qui permet de créer un utilisateuret d'utiliser toutes les fonctionnalités comme l'encryptage du mot de passe avec un hash.
00:03:25 :Donc on utilise CreateUser pour avoir accès à tout çaet on va lui passer tout simplement les informations qu'on a récupérées du formulaire.Donc on a un paramètre username auquel on va passer notre nom d'utilisateuret un paramètre password auquel on passe le mot de passe.
00:03:38 :On va récupérer l'utilisateur qui a été créé dans une variable que je vais appeler user tout simplementet on va pouvoir ensuite connecter l'utilisateur.Donc pour connecter l'utilisateur, on utilise une fonction très simple qui s'appelle loginet on va l'importer, donc option entrée,et vous voyez qu'elle est disponible dans ce même module Django Contrib Hot,
00:03:57 :donc le même module que celui qui contenait cette fonction GetUserModel.Donc login, qu'est-ce qu'il a besoin ? Il a besoin de la requête, donc request,
00:04:04 :et de l'utilisateur user, donc l'utilisateur qu'on a créé précédemment.Et si jamais vous ne vous souvenez pas de qu'est-ce qu'il faut envoyer à cette fonction,là encore n'hésitez pas à aller inspecter ces fonctions.
00:04:14 :Donc moi j'utilise très souvent le raccourci Command-B,sinon vous pouvez le trouver là encore dans GoToDeclarationOrUsage.Et donc là on voit bien que login ça nécessite d'avoir accès à la requête et au non-utilisateur,et on a un troisième paramètre ici qui n'est pas nécessaire puisqu'il a une option par défaut Anon,
00:04:30 :je ne sais même pas à quoi il sert pour être tout à fait honnête.Donc nous ce qu'on a besoin d'envoyer c'est juste le request et le user.
00:04:36 :Donc ça, ça va nous permettre avec cette fonction de connecter notre utilisateur,donc on va en fait tout simplement créer l'utilisateur dans la base de donnéeset ensuite le connecter à notre site.
00:04:46 :Et pour finir, pour ne pas revenir sur cette page Account Signup,et bien on va tout simplement rediriger vers la vue d'accueil avec la fonction Redirect.
00:04:54 :Donc cette fonction qu'il faut importer, qui je pense est également dans Django Shortcuts,mais je ne suis jamais trop sûr, donc option Entrée encore une fois,et c'est bien le cas, Import Redirect from Django Shortcuts.
00:05:04 :Donc il va rajouter l'import au début du fichier et je vais redirer vers la vue d'index,donc en mettant tout simplement le nom de la vue dans une chaîne de caractère.
00:05:12 :Donc normalement on a tout ce qu'il faut ici, si la requête est du type Post,on récupère les informations du formulaire, on crée l'utilisateur,on le connecte à notre site et on le redirige vers la page d'accueil.
00:05:23 :Donc on va vérifier que tout ça fonctionne bien,on retourne sur notre page ici, on est sur la page d'inscription,donc je vais juste actualiser pour être sûr que tout est bien pris en compte,que tous les changements qu'on a fait vont être pris en compte.
00:05:34 :Donc un nom d'utilisateur ici, on va mettre test1234, mot de passe aussi,je vais mettre 1 2 3 4 5 6 7 8 et je clique sur s'inscrire.
00:05:43 :Et là vous voyez qu'on est bien redirigé vers la vue d'accueil,donc ça signifie qu'on est bien arrivé jusqu'à cette ligne ici de redirectionet on va vérifier que notre utilisateur est bien créé en allant dans la base de données.
00:05:53 :Donc j'actualise la base de données et je vais voir dans Accounts Shopperet on voit qu'on a bien deux éléments ici,donc on a bien Tibache que j'avais créé, donc le super utilisateur,on voit ici dans His super user, on a bien 1,et on a bien notre nouvel utilisateur test1234 qui lui n'est pas un super utilisateur.
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.