Django : не удается войти в систему администрирования django
Прежде всего, я создал модель User, которая наследуется от AbstractUser. Я использую другую модель, которая называется CustomUserManager (которая наследуется от UserManager). В CustomUserManager я переписал метод create_user и метод create_superuser. Когда я создаю простого активного пользователя, все работает нормально (я могу подключить пользователя). Когда я создаю суперпользователя, он работает нормально ("Superuser created successfully"), но когда я перехожу на административный канал django и ввожу правильную информацию суперпользователя, он не работает и выдает следующее сообщение: "Пожалуйста, введите правильный email и пароль для учетной записи персонала. Обратите внимание, что оба поля могут быть чувствительны к регистру. "
Вот мой models.py :
class CustomUserManager(UserManager):
def _create_user(self,email,password,first_name,last_name,**extra_fields):
email = self.normalize_email(email)
user = User(email=email)
user.is_active=True
user.password = make_password(password)
user.save(using=self._db)
return user
def create_user(self,email,password,first_name,last_name,**extra_fields):
return self._create_user(email,password,first_name,last_name,**extra_fields)
def create_superuser(self,email,password,first_name,last_name,**extra_fields):
"""
Create and save a SuperUser with the given email and password.
"""
extra_fields.setdefault('is_staff', True)
extra_fields.setdefault('is_superuser', True)
extra_fields.setdefault('is_active',True)
if extra_fields.get('is_staff') is not True:
raise ValueError('Superuser must have is_staff=True.')
if extra_fields.get('is_superuser') is not True:
raise ValueError('Superuser must have is_superuser=True.')
return self.create_user(email,password,first_name, last_name, **extra_fields)
class User(AbstractUser):
username = None
email = models.EmailField(unique=True, blank=False)
first_name = models.CharField(blank=False,max_length=50)
last_name = models.CharField(blank=False,max_length=50)
REQUIRED_FIELDS=["first_name","last_name"]
USERNAME_FIELD = 'email'
objects = CustomUserManager()
EDIT : Спасибо Максу Кониеву, я забыл сказать, но у меня уже установлен AUTH_USER_MODEL для моей модели User в моем приложении private_portal : AUTH_USER_MODEL = 'private_portal.User'
Убедитесь, что вы установили AUTH_USER_MODEL в settings.py на вашу новую модель пользователя