Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使管理员需要密码,但用户无法使用_Python_Django_Python 3.x_Django Custom User - Fatal编程技术网

Python 使管理员需要密码,但用户无法使用

Python 使管理员需要密码,但用户无法使用,python,django,python-3.x,django-custom-user,Python,Django,Python 3.x,Django Custom User,我正在尝试为一个移动应用程序实现Django后端,在这个应用程序中,用户只通过他们的手机号码进行身份验证。当用户尝试登录时,后端将向他发送OTP,以便他可以登录。对于这个用例,我想我不需要密码字段。但是,我想我需要超级用户的密码。我正在考虑一个解决方案,但我不知道这是否是一个合适的解决方案 型号。py: class UserManager(BaseUserManager): def create_user(self, email, phone_number, password=None)

我正在尝试为一个移动应用程序实现Django后端,在这个应用程序中,用户只通过他们的手机号码进行身份验证。当用户尝试登录时,后端将向他发送OTP,以便他可以登录。对于这个用例,我想我不需要密码字段。但是,我想我需要超级用户的密码。我正在考虑一个解决方案,但我不知道这是否是一个合适的解决方案

型号。py:

class UserManager(BaseUserManager):
    def create_user(self, email, phone_number, password=None):
        user = self.model(email=email, phone_number=phone_number)
        user.set_password(password)
        user.save()
        return user

    def create_superuser(self, email, phone_number, password=None):
        user = self.create_user(email, phone_number, password)
        user.is_staff = True
        user.save()
        return user


class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(blank=False, null=False, unique=True)
    phone_number = PhoneNumberField(blank=False, null=False, unique=True)
    is_staff = models.BooleanField(default=False, blank=False, null=False)

    objects = UserManager()
    USERNAME_FIELD = 'phone_number'
    EMAIL_FIELD = 'email'
    REQUIRED_FIELDS = ['email']

    def __str__(self):
        return self.phone_number

上面的代码可以完成任务吗?

@iklinac如果有必要,我将编写自己的身份验证后端。请您告诉我我的解决方案有什么问题,以便我可以从错误中吸取教训?您提供的代码没有说明任何问题。这只是一个自定义用户模型和用户管理器。@AndreyNelubin如果我不清楚,我很抱歉。提供的代码是否完成了这项工作?我是否可以使用超级用户用户名和密码登录管理面板,而不使用密码登录API?@是的,代码可以做到这一点。@iklinac如果有必要,我将编写自己的身份验证后端。请您告诉我我的解决方案有什么问题,以便我可以从错误中吸取教训?您提供的代码没有说明任何问题。这只是一个自定义用户模型和用户管理器。@AndreyNelubin如果我不清楚,我很抱歉。提供的代码是否完成了这项工作?我是否可以使用超级用户用户名和密码登录管理面板,而不使用密码登录API?@是的,代码可以做到这一点。