如果确实在django admin中创建了具有超级用户状态的用户,而我无法登录django admin。它说
请为员工帐户输入正确的电话和密码。注意 两个字段都区分大小写。
这是我的代码
class UserManager(BaseUserManager):
use_in_migrations = True
def _create_user(self, phone, password, **extra_fields):
user = self.model(phone=phone, **extra_fields)
user.set_password(password)
user.save(using=self._db)
return user
def create_user(self, phone, password=None, **extra_fields):
extra_fields.setdefault('is_staff', False)
extra_fields.setdefault('is_superuser', False)
return self._create_user(phone, password, **extra_fields)
def create_superuser(self, phone, password, **extra_fields):
if password is None:
raise TypeError(
'Superuser must have a password'
)
user = self._create_user(phone=phone, password=password, **extra_fields)
user.is_superuser = True
user.is_staff = True
user.save(using=self._db)
return user
class User(AbstractUser):
username = models.CharField(blank=True, null=True, max_length=50)
phone = models.CharField(max_length=13, unique=True)
USERNAME_FIELD = 'phone'
verified = models.BooleanField(default=False)
objects = UserManager()
REQUIRED_FIELDS = ['email', 'first_name', 'last_name']
def __str__(self):
return self.phone
如果我在终端中创建用户,则可以轻松登录django admin。如果我在django admin中这样做,我将无法执行。任何人都可以告诉我代码中是否有错误或缺失吗?先感谢您!
顺便说一句,它将在具有django admin中已创建用户的终端中返回True
的超级用户状态,但是无法访问。