Невозможно создать суперпользователя после создания CustomUser

После создания пользовательского пользователя, когда я попытался создать суперпользователя, он выдал ошибку

TypeError: UserManager.create_superuser() missing 1 required positional argument: 'username'

После создания CustomUserManager он показывает

Выражение типа "CustomUserManager" несовместимо с объявленным типом "UserManager[Self@AbstractUser]" "CustomUserManager" несовместим с "UserManager[Self@AbstractUser]"

Expression of type "CustomUserManager" is incompatible with declared type "UserManager[Self@AbstractUser]"
  "CustomUserManager" is incompatible with "UserManager[Self@AbstractUser]"

class CustomUserManager(BaseUserManager):
    def create_user(self, email, password=None, **extra_fields):
        if not email:
            raise ValueError('The Email field must be set')
        email = self.normalize_email(email)
        user = self.model(email=email, **extra_fields)
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, email, password=None, **extra_fields):
        extra_fields.setdefault('is_staff', True)
        extra_fields.setdefault('is_superuser', True)
        return self.create_user(email, password, **extra_fields)


class CustomUser(AbstractUser, PermissionsMixin):
    username = None
    email = models.EmailField(unique=True)  

    daily_reminders = models.IntegerField(default=0)
    start_at = models.TimeField(null=True, blank=True)
    end_at = models.TimeField(null=True, blank=True)
    notification_status = models.IntegerField(null=True, blank=True)
    device_type = models.CharField(choices=DIV_CHOICES, max_length=10, null=True, blank=True)
    device_token = models.CharField(max_length=255, null=True, blank=True)
    categories = models.JSONField(default=list, null=True, blank=True)
    

    USERNAME_FIELD = 'email'  
    REQUIRED_FIELDS = []  
    
    objects = CustomUserManager()

    def __str__(self):
        return self.email

I BaseUserManager импортирован

from django.contrib.auth.base_user import BaseUserManager

но все еще показывает ошибку

Прошло очень много времени с тех пор, как я занимался Django, но я помню, что когда речь идет о пользовательских классах - модели должны быть обновлены перед первой миграцией, так как в противном случае все будет работать не так, как ожидалось. Не уверен, что это по-прежнему так, и вообще, отвечаю ли я на ваш вопрос :)

Нет никаких проблем с кодом.

Однако при переносе базы данных, вероятно, был применен UserManager.

При смене менеджера также требуется выполнить процесс миграции и мигрировать.

python3 manage.py makemigrations YourUserApp
python3 manage.py migrate

CustomUserManager еще не был применен, пожалуйста, повторите попытку после выполнения миграции!

Вернуться на верх