Ich versuche, das E-Mail-Feld im Standard-Django-Benutzermodell als Benutzernamen zu verwenden. Ich benutze Django 1.5 und ich sah, dass der Standardbenutzer eine USERNAME_FIELD
-Eigenschaft hat.
In meinem Projekt möchte ich das folgende USERNAME_FIELD = 'email'
als Standard im Benutzermodell festlegen.
Diese kleine, aber grundlegende Optimierung ist die einzige Sache, die ich im Benutzermodell ändern möchte. Ich habe mich gefragt, ob es eine Möglichkeit gibt, die USERNAME_FIELD
zu ändern, ohne den AbstractUser zu unterklassen. Ich habe in diese Frage gesehen, dass Sie die AbstractUser
ableiten und einen benutzerdefinierten Manager dafür schreiben können.
Also habe ich mich gefragt, ob es eine einfachere Möglichkeit gibt, diese Eigenschaft zu ändern?
Und wenn nicht, was wäre die minimale Art, das AbstractUser
so zu erweitern, dass das E-Mail-Feld als Benutzername verwendet wird?
Sie müssen eine neue benutzerdefinierte Benutzerklasse schreiben, indem Sie den AbstractBaseUser und nicht AbstractUser
erweiternDeklarieren Sie dort Ihre E-Mail als USERNAME_FIELD
Optional können Sie auch einen benutzerdefinierten Benutzermanager deklarieren, der sich von BaseUserManager aus erstreckt, um die Einschränkung für Benutzername erforderlich zu behandeln. Sie können den Benutzernamen aus der create_user-Funktion dieses Managers entfernen
Tags und Links django email model username django-1.5