Python 使管理员需要密码,但用户无法使用
我正在尝试为一个移动应用程序实现Django后端,在这个应用程序中,用户只通过他们的手机号码进行身份验证。当用户尝试登录时,后端将向他发送OTP,以便他可以登录。对于这个用例,我想我不需要密码字段。但是,我想我需要超级用户的密码。我正在考虑一个解决方案,但我不知道这是否是一个合适的解决方案 型号。py: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)
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?@是的,代码可以做到这一点。