Для нашего проекта было необходимо переопределить модель пользователя и добавить некоторые поля и избавится от некоторых. Избавиться нужно от username, потому что хотим сделать регистрацию и авторизацию по почте. Аутентификацию уже переписал - работает! Пользователя заходит по почте и паролю, все отлично. Но при регистрации вылетает следующая ошибка.
AttributeError: 'AnonymousUser' object has no attribute 'email'
И если хотим обновить данные пользователя то вылетает ошибки типа поле username не может быть пустым и т.д.
Вот так выглядит дополненная модель пользователя:
class CustomUser(AbstractUser, UpdateMixin):
"""
Extension of standard user model.
Added:
--- phone number
--- avatar
--- chat_id
"""
first_name = models.CharField(max_length=30, blank=False, validators=[validate_not_empty_filed])
last_name = models.CharField(max_length=30, blank=False, validators=[validate_not_empty_filed])
email = models.EmailField(blank=False, unique=True, validators=[validate_email_field])
avatar = models.ImageField(upload_to='users_avatars/', blank=True, max_length=1000)
# телефон хранится в формате +7*********
phone = models.CharField(max_length=12, blank=True, validators=[validate_phone_field])
# id чата с ботом в телеграме
chat_id = models.CharField(max_length=15, blank=True, validators=[validate_telegram_chat_id_field])
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['first_name', 'last_name']
class Meta:
managed = True
# дальше идут методы модели
Вопрос: как деактивировать username?