Я пытаюсь реализовать Django бэкэнд для мобильного приложения, в котором пользователи проходят аутентификацию только по своим мобильным номерам. Когда пользователь пытается войти, сервер отправляет ему OTP, чтобы он мог войти. Для этого случая использования, я думаю, мне не нужно поле пароля. Тем не менее, я думаю, что мне нужен пароль для суперпользователей. Я думаю о решении, но не знаю, подходит ли оно.
models.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
Будет ли приведенный выше код выполнять работа