Django. Как создать кастомного юзера без пароля, но с токеном?

Django 1.8, python3

Появилась необходимость создать кастомного юзера. Следовал мануалу https://docs.djangoproject.com/en/1.8/topics/auth/... , класс юзера наследуется от AbstractBaseUser

В AbstractBaseUser есть поле "пароль", которого мне бы не хотелось иметь в модели. Как его убрать?

class MyUser(AbstractBaseUser):
    token = models.CharField(unique=True, max_length=220) # need to consider Crypt
    first_name = models.CharField(null=True, blank=True, max_length=63)
    last_name = models.CharField(null=True, blank=True, max_length=63)
    password = None


так поле password не исчезает
  • Вопрос задан
  • 423 просмотра
Пригласить эксперта
Ответы на вопрос 2
shultais
@shultais
Обучаю программированию на Python и SQL
У AbstractBaseUser есть несколько методов для работы с "пустыми паролями", как раз для работы с токенами подойдут.

def set_unusable_password(self):
    # Создает "ниюзабельный" пароль, который при вызове метода check_password будет возвращать False
    self.password = make_password(None)

def has_usable_password(self):
    return is_password_usable(self.password)
Ответ написан
@emigrant90 Автор вопроса
Решил проблему кардинально. Вместо наследования от AbstractBaseUser унаследовался от models.Model и добавил необходимые методы руками. Единственное, с чем может быть проблема в случае обновления до новой версии Django - это метод get_session_auth_hash() . И то не думаю (а зря).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы