Ich möchte ein E-Mail-Feld als Benutzername Feld für mein benutzerdefiniertes Benutzermodell verwenden. Ich habe folgendes benutzerdefinierte User-Modell Subklassen Djangos AbstractUser Modell:Verwenden von E-Mail als Benutzername Feld in Django 1.5 benutzerdefinierte Benutzermodell Ergebnisse in Feldfehler
class CustomUser(AbstractUser):
....
email = models.EmailField(max_length=255, unique=True)
USERNAME_FIELD = 'email'
Aber wenn ich
python manage.py sql myapp
laufen bekomme ich folgende Fehlermeldung:
FieldError: Local field 'email' in class 'CustomUser' clashes with field of similar name from base class 'AbstractUser'
Der Grund, warum ich meine eigenen umfassen E-Mail-Feld an erster Stelle ist die Option unique=True
zu ihm hinzuzufügen. sonst bekomme ich:
myapp.customuser: The USERNAME_FIELD must be unique. Add unique=True to the field parameters.
nun in Bezug auf diese: https://docs.djangoproject.com/en/1.5/topics/db/models/#field-name-hiding-is-not-permitted
Wie kann ich das erreichen? (Anderenfalls benennen Sie das Feld "user_email" oder etwas ähnliches)
Was macht Ihr create_superuser Methode enthalten? – Siecje
Erzeugt ein Benutzerobjekt ohne 'username' Feld (stattdessen' email') mit create_user: 'u = self.create_user (email, Passwort, ** extra_fields)', setzt den Superuser "spezielle" Felder ('is_staff, is_superuser, ... ') und speichert dann diesen Benutzer. – OrPo
ist die Implementierung von 'CustomUserMananger' ein Muss oder kann ich es überspringen und die Django-Mitarbeiter werden nicht mehr eingestellt? – andi