Создание пароля требуется для администраторов, но непригодно для пользователей - PullRequest
1 голос
/ 16 марта 2020

Я пытаюсь реализовать 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

Будет ли приведенный выше код выполнять работа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...