Невозможно создать суперпользователя/ TypeError: NewUser() получил неожиданный аргумент ключевого слова 'username'

Я пытаюсь создать пользовательскую модель суперпользователя, но когда я пытаюсь создать фактическую учетную запись суперпользователя с помощью "python manage.py createsuperuser", я заполняю email, имя пользователя, имя, пароль и пароль 2. Но когда я нажимаю enter после ввода второго пароля, я получаю ошибку

    from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUserManager
    from datetime import datetime
    from .country import COUNTRY_CHOICE
    from django.utils.translation import gettext_lazy as _
    from django.db import models

    # Create your models here.
    country_choice = COUNTRY_CHOICE


    class CustomAccountManager(BaseUserManager):

        def create_superuser(self, email, user_name, first_name, password, **other_fields):

            other_fields.setdefault('is_staff', True)
            other_fields.setdefault('is_superuser', True)
            other_fields.setdefault('is_active', True)

            if other_fields.get('is_staff') is not True:
                raise ValueError('Superuser must be assigned to is_staff=True.')

            if other_fields.get('is_superuser') is not True:
                raise ValueError('Superuser must be assigned to is_superuser=True.')

            return self.create_user(email, user_name, first_name, password, **other_fields)

        def create_user(self, email, user_name, first_name, password, **other_fields):

            if not email:
                raise ValueError(_('You must provide an email address'))

            email = self.normalize_email(email)
            user = self.model(email=email, username=user_name,
                      first_name=first_name, **other_fields)
            user.set_password(password)
            user.save()
            return user


    class NewUser(AbstractBaseUser, PermissionsMixin):
        email = models.EmailField(_('email address'), unique=True)
        user_name = models.CharField(max_length=50, unique=True)

        first_name = models.CharField(max_length=30, blank=False)
        middle_name = models.CharField(max_length=30, blank=True)
        last_name = models.CharField(max_length=30, blank=False)

        birthday = models.DateTimeField()

        # gender model
        GENDER_CHOICES = (
            ('M', 'Male'),
            ('F', 'Female'),
            ('O', 'Other'),
        )

        gender = models.CharField(max_length=1, choices=[('M', 'Male'), ('F', 'Female'), ('O',                         
        'Other')])
        country = models.CharField(max_length=2, choices=COUNTRY_CHOICE)
        datetime = models.DateTimeField(default=datetime.now())

        is_staff = models.BooleanField(default=False)
        is_active = models.BooleanField(default=False)

        objects = CustomAccountManager()

        USERNAME_FIELD = 'email'
        REQUIRED_FIELDS = ['user_name', 'first_name']

        def __str__(self):
            return self.user_name

Затем вот фактическая ошибка. В ней говорится, что она получает неожиданный аргумент, и я предполагаю, что это аргумент от BaseUserManager, но не уверен.

    (ofaw) C:\Users\dell\Desktop\OneForAll\Django website\ofaw>python manage.py                 
    createsuperuser
    Email address: sufletel.sizu@gmail.com
    User name: someUserName
    First name: SomeFirstName
    Password:
    Password (again):
    Traceback (most recent call last):
      File "manage.py", line 22, in <module>
        main()
      File "manage.py", line 18, in main
        execute_from_command_line(sys.argv)
      File "C:\Users\dell\ofaw\lib\site-packages\django\core\management\__init__.py", line         
    419, in execute_from_command_line
        utility.execute()
      File "C:\Users\dell\ofaw\lib\site-packages\django\core\management\__init__.py", line 
    413, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "C:\Users\dell\ofaw\lib\site-packages\django\core\management\base.py", line 354, in         
    run_from_argv
        self.execute(*args, **cmd_options)
      File "C:\Users\dell\ofaw\lib\site-        
    packages\django\contrib\auth\management\commands\createsuperuser.py", line 79, in execute
        return super().execute(*args, **options)
      File "C:\Users\dell\ofaw\lib\site-packages\django\core\management\base.py", line 398, in 
    execute
        output = self.handle(*args, **options)
      File "C:\Users\dell\ofaw\lib\site-        
    packages\django\contrib\auth\management\commands\createsuperuser.py", line 189, in handle
        self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)
      File "C:\Users\dell\Desktop\OneForAll\Django website\ofaw\register\models.py", line 25, 
    in create_superuser
        return self.create_user(email, user_name, first_name, password, **other_fields)
      File "C:\Users\dell\Desktop\OneForAll\Django website\ofaw\register\models.py", line 34, 
    in create_user
        first_name=first_name, **other_fields)
      File "C:\Users\dell\ofaw\lib\site-packages\django\db\models\base.py", line 503, in 
    __init__
        raise TypeError("%s() got an unexpected keyword argument '%s'" % (cls.__name__, 
    kwarg))
    TypeError: NewUser() got an unexpected keyword argument 'username'

Есть идеи?

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