когда я запускаю команду createuperuser .. он просит меня ввести адрес электронной почты, а затем пароль. После ввода пароля он не создает суперпользователя, а дает мне TypeError: create_superuser (), пропускающий 1 обязательный позиционный аргумент: 'name'.
Вот мои models.py
from django.db import models
from django.contrib.auth.models import AbstractBaseUser,PermissionsMixin, BaseUserManager
class UserProfileManager(BaseUserManager):
def create_user(self, email, name, password=None):
if not email:
raise ValueError('User must have an email address')
email = self.normalize_email(email)
user = self.model(email=email, name=name)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, email, name, password):
user = self.create_user(email, name, password)
user.is_superuser = True
user.is_staff = True
user.save(using=self._db)
return user
class UserModel(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=300, unique=True)
name = models.CharField(max_length=255)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
objects = UserProfileManager()
USERNAME_FIELD= 'email'
REQUIRED_FIELD = 'name'
def get_full_name(self):
return self.name
def get_short_name(self):
return self.name
def __str__(self):
return self.email