无法访问Django管理员

时间:2019-11-29 13:11:42

标签: python django django-models django-rest-framework

如果确实在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的超级用户状态,但是无法访问。

0 个答案:

没有答案