Удалить пароль из пользовательской модели Django User

Как удалить пароль в таблице пользователей и классе пользователя в пользовательской модели пользователя?

Я использую аутентификацию токена django-rest-framework, поэтому мне не нужно поле пароля.

Вот моя модель:

class CustomUserManager(BaseUserManager):

    def create_user(phone, name=None):
        return User.objects.create(
            name=name, phone=phone)

    def create_superuser(name, phone=None):
        pass

class User(AbstractBaseUser):
    """
    Custom django User model.
    """
    name = models.CharField(max_length=30,
                        null=True, validators=[validate_name])

    phone = PhoneNumberField(unique=True, blank=False, null=False)

    objects = CustomUserManager()

    USERNAME_FIELD = 'phone'
    REQUIRED_FIELDS = []

person Anas Aldrees    schedule 21.01.2016    source источник
comment
Вы уверены, что вам вообще не нужны пароли? Типа, скажем, за наличие root-доступа к админке???   -  person bruno desthuilliers    schedule 21.01.2016
comment
Да, я уверен, и мне не нужен доступ администратора.   -  person Anas Aldrees    schedule 21.01.2016


Ответы (2)


Альтернативой удалению поля пароля может быть использование set_unusable_password, который помечает пользователя как неустановленного пароля.

def create_user(phone, name=None):
    user = User(name=name, phone=phone)
    user.set_unusable_password()
    user.save()
    return user
person Alasdair    schedule 21.01.2016
comment
Это, как сказано в документах. Это может понадобиться вам, если аутентификация вашего приложения выполняется в отношении существующего внешнего источника, такого как каталог LDAP. - person Sayse; 21.01.2016

Просто переопределите атрибут пароля:

password = None
person sean    schedule 21.01.2016