Невозможно создать суперпользователя в Django, используя пользовательского пользователя
Я получил эту ошибку, когда попытался запустить manage.py createsuperuser
TypeError: UserManager.create_superuser() отсутствует 1 обязательный позиционный аргумент: 'username'
Моя модель пользователя:
class User(AbstractUser):
name = models.CharField(max_length=32)
email = models.CharField(max_length=140, unique=True)
password = models.CharField(max_length=140)
username = None
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
и в моем файле settings.py:
AUTH_USER_MODEL = 'usuarios.User'
Как я могу решить эту проблему? Я новичок в Django, документация меня смущает...
Я уже пробовал удалить AUTH_USER_MODEL = 'usuarios.User' или удалить атрибут username из класса User
Для создания суперпользователя с пользовательской моделью пользователя, как описано выше, вам необходимо реализовать метод create_superuser в пользовательском классе UserManager, как показано ниже, и вам нужно указать поле username в пользовательской модели пользователя, как показано ниже. Затем укажите пользовательскую модель пользователя в настройках
class User(AbstractBaseUser,PermissionsMixin):
name = models.CharField(max_length=255,null=True,blank=True)
mobile = models.CharField("Mobile No",max_length=10,unique=True)
is_active = models.BooleanField(default=True)
objects = CustUserManager() # custom object manager
USERNAME_FIELD = 'mobile' # custom username field (**in this case mobile**)
class CustUserManager(BaseUserManager):
def create_superuser(self,mobile,password=None,**extra_fields):
user = self.create_user(mobile,password)
user.is_superuser = True
user.save(using=self._db)
def create_user(self,email,account_no,password=None,**extra_fields):
#code to create user like above