Создание пользовательского суперпользователя django
Я пытаюсь создать пользовательскую модель пользователя, но когда я создаю суперпользователя с помощью "python manage.py createsuperuser" и пытаюсь войти в систему из админки django, я получаю следующее сообщение:
Пожалуйста, введите правильное имя пользователя и пароль для учетной записи персонала. Обратите внимание, что оба поля могут быть чувствительны к регистру.
имя пользователя и пароль верны.
а это мои модели:
class MyUserManager(BaseUserManager):
def create_user(self, username, password, **extra_fields):
user = self.model(username=username)
user.set_password(password)
user.save()
return user
def create_superuser(self, username, password, **extra_fields):
extra_fields.setdefault('is_staff', True)
extra_fields.setdefault('is_superuser', True)
extra_fields.setdefault('is_active', True)
return self.create_user(username, password, **extra_fields)
class User(AbstractBaseUser, PermissionsMixin):
username = models.CharField(max_length=10,unique=True)
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = []
publisher = models.BooleanField(default=False)
admin = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
objects = MyUserManager()
def __str__(self):
return self.username
Вы должны включить extra_fields при создании пользователя.
Таким образом, ваша третья строка должна быть такой, как показано ниже:
user = self.model(username=username, **extra_fields)
Вы можете попробовать включить django.contrib.auth.backends.ModelBackend в параметр AUTHENTICATION_BACKENDS. Похожий вопрос можно найти здесь .