Modele de nom d`utilisateur

Mais les plats à emporter est que si nous avons fait une application utilisateurs, un modèle CustomUser à l`intérieur, puis de substituer le modèle utilisateur par défaut dans notre fichier settings.py nous ferons ce qui suit. Ce n`est pas pour rien qu`ils disent nommer les choses est l`un des problèmes durs en informatique. Pour la modélisation des comptes d`utilisateurs, il y a trois champs de noms différents que vous voulez probablement, et pour le plaisir d`éviter la confusion ne nous appelons pas l`un d`eux le nom d`utilisateur: la façon dont le modèle utilisateur et notre modèle CustomUser sont connectés est très clair dans l`admin. Lorsque vous regardez l`admin pour cette version, vous verrez que les utilisateurs et CustomUsers sont répertoriés séparément. Utiliser: login et non: username dans les sessions/New. html. ERB puis créer un superutilisateur (Python manage.py createsuperuser) pour le tester. C`est là que vous courez dans un problème si vous voulez utiliser le courrier électronique comme nom d`utilisateur, mais pas besoin d`un nom d`utilisateur réel lorsque la personne s`inscrit: le code source pour le modèle AbstractUser nécessite e-mail, mot de passe et nom d`utilisateur. Cette section suppose que vous avez exécuté les étapes dans autoriser les utilisateurs à se connecter à l`aide de leur nom d`utilisateur ou e-mail. Option 1 — sous-classing AbstractBaseUser (Repo) nous avons constaté que les utilisateurs avaient souvent de nombreux appareils (travail et personnel).

En permettant à un seul nom d`utilisateur de se connecter à 3 appareils, nous avons créé une flexibilité pour l`utilisation de plusieurs appareils sans demander à l`utilisateur de se déconnecter. Le paramètre USERNAME_FIELD ne prend pas en charge une liste. Vous pouvez créer un backend d`authentification personnalisé qui tente de Rechercher l`utilisateur sur les champs`email`ou`username`. Les deux référencent un modèle avec l`URL nommée de la maison afin que nous ayons besoin de créer cette page d`accueil maintenant. La création d`un utilisateur est la même que d`habitude, mais si vous essayez d`ajouter un utilisateur personnalisé, l`administrateur vous demandera le nom d`utilisateur de l`enregistrement que vous souhaitez attacher notre modèle personnalisé à, et affiche le champ zip_code nous avons ajouté. En termes plus simples, notre modèle d`utilisateur 2014 est plus facile à gérer, offre une plus grande souplesse lors de l`utilisation de plusieurs appareils et décourage le partage de nom d`utilisateur et de mots de passe. La méthode par défaut consiste à accéder directement à l`utilisateur, qui est le modèle Django intégré qui nous fournit des champs username, email, Password, first_name et last_name. Essayez de spécifier le courrier électronique en tant que champ username avec l`attribut USERNAME_FIELD: mais comment un développeur Django doit-il référencer le modèle utilisateur? Les docs officiels de Django énumérez trois façons distinctes: J`ai obtenu quelques compliments gentils sur l`affiche, en personne et montré dans les tweets sur la gauche, mais j`ai pensé que les exemples complets étaient un grand morceau de rétroaction, et conduirait à une discussion plus large des nuances et des compromis de la CAE option h.

Dans ce post, je vais décrire ce que j`ai appris à rassembler l`affiche, montrer un échantillon de code pour chaque possibilité, et offrir quelques recommandations pour le signe-en-avec-quelque chose-autre-que-nom d`utilisateur cas d`utilisation basée sur mes recherches et sur les conversations que j`avais à PyCon. Option 3: ajouter des champs à la classe User existante à l`aide de la méthode OneToOneField. Cette méthode n`aide pas vraiment si vous voulez changer le champ username, mais il vous permet de lier le modèle utilisateur à un autre modèle pour stocker plus de données. Il guirlande deux modèles ensemble dans la base de données, ce qui serait utile si vous voulez stocker des données utilisateur qui n`a rien à voir avec l`authentification ou si certaines des données de l`utilisateur est nécessaire par un service tiers que vous souhaitez boucler e. C`était aussi la façon recommandée de personnaliser un modèle utilisateur avant la version 1,5 de Django, donc quelques applications existantes utilisent cette méthode. Les plats à emporter sont que le travail avec les modèles utilisateur est délicat dans n`importe quel cadre Web. Django dispose d`un système d`authentification utilisateur robuste, mais étant donné que de nombreux projets utilisent plutôt un modèle utilisateur personnalisé, la meilleure approche lorsque vous souhaitez faire référence au modèle utilisateur actuel – des trois disponibles – est de toujours utiliser get_user_model. Mais si nous avons un modèle d`utilisateur personnalisé, nous ne pouvons pas faire référence à lui en tant qu`utilisateur alors comment pouvons-nous le référencer? Il s`avère qu`il y a deux façons différentes. Si vous avez actuellement plusieurs personnes partageant le même nom d`utilisateur sur différents appareils, cela vous affectera.