Недостатки регистрации с помощью электронной почты с использованием AbstractUser, а не AbstractBaseUser
Меня полностью устраивает стандартная модель пользователя Django, и я хотел бы расширить ее, AbstractUser кажется, описывает мою ситуацию,
Если вас полностью устраивает модель пользователя Django, но вы хотите добавить некоторую дополнительную информацию о профиле, вы можете создать подкласс django.contrib.auth.models.AbstractUser и добавить свой пользовательский профиль поля
Но я также узнал, что если вы хотите войти в систему с помощью Email, вам следует использовать AbstractBaseUser,
Если вы хотите использовать адрес электронной почты в качестве аутентификации вместо имя пользователя, то лучше расширить AbstractBaseUser
.
Моя текущая модель использует AbstractUser и не AbstractBaseUser, я могу войти в систему с помощью электронной почты просто отлично, Какова потенциальная отрицательная сторона этого в долгосрочной перспективе?
У меня есть планы разрешить пользователю входить в систему с помощью Email или телефона в будущем, сейчас только Email, но, похоже, это как-то связано с AUTHENTICATION_BACKENDS независимо от того, что вы используете, Что потенциально может пойти не так, если я продолжу с AbstractUser или должен ли я быть осторожным и использовать AbstractBaseUser?
Согласно Django Docs, очень сложно изменить дефолтную модель пользователя на пользовательскую модель пользователя в среднем проекте, Тогда насколько хлопотно будет изменить AbstractUser на AbstractBaseUser?
from django.db import models
from django.contrib.auth.models import AbstractUser
class Account(AbstractUser):
email = models.EmailField(unique=True)
is_mvp = models.BooleanField(default=False)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []