Форма входа в админку не дает залогиниться суперпользователю
При попытке войти в панель админки Django, выдается ошибка: "Эта учетная запись отключена." Однако статус пользователя активен. Я попробовал зарегистрировать нового пользователя через консоль, однако ошибка осталась.
Войти в панель администрирования можно только залогинившись на самом сайте через форму авторизации.
Я использую кастомную модель пользователя.
Вот мой код:
settings.py:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'users.backends.AuthBackend',
)
users.models
class CustomАccountManager(BaseUserManager):
def create_user(self, email, full_name, password, **other_fields):
if not email:
raise ValueError('Введи почту')
email = self.normalize_email(email)
if not full_name:
full_name = email.split('@')[0]
user = self.model(
email=email,
full_name=full_name,
**other_fields
)
user.set_password(password)
# other_fields.setdefault('is_active', True)
user.save()
return user
def create_superuser(self, email, full_name, password, **other_fields):
other_fields.setdefault('is_staff', True)
other_fields.setdefault('is_superuser', True)
# other_fields.setdefault('is_author', True)
other_fields.setdefault('is_active', True)
if other_fields.get('is_staff') is not True:
raise ValueError('Sorry но is_staff = False')
if other_fields.get('is_superuser') is not True:
raise ValueError('Sorry но is_superuser = False')
if other_fields.get('is_active') is not True:
raise ValueError('Sorry но is_active = False')
return self.create_user(email, full_name, password, **other_fields)
Сама модель пользователя:
class NewUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(
verbose_name='Адрес электронной почты', unique=True)
full_name = models.CharField(
max_length=250, verbose_name='ФИО', blank=True)
photo = models.ImageField(
upload_to='AuthorUser_photo/%Y/%m/%d/', verbose_name='Фото автора')
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=False)
is_author = models.BooleanField(default=False, verbose_name='Автор контента?')
date_joined = models.DateTimeField(default=timezone.now)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['full_name']
objects = CustomАccountManager()
def __str__(self):
return self.full_name
def get_absolute_url(self):
return reverse('author_news_list', args=[str(self.pk)])
Профиль пользователя:
class ProfileAuthor (models.Model):
author = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
bio = RichTextField(verbose_name='Об авторе')
achivment = models.CharField(max_length=350, verbose_name='Достижения', blank=True)
category = TreeForeignKey('news.Category', on_delete=models.CASCADE, verbose_name='Категория', default=1)
def __str__(self):
return self.author.full_name
Я новичок в Django поэтому могу не удивить очевидных вещей. Заранее прошу прощения