Ответ 1
Вы хотите расширить свою модель пользователя до AbstractUser
и добавить дополнительные поля. AbstractUser
наследует все стандартные поля профиля пользователя, тогда как AbstractBaseUser
запускает вас с нуля без каких-либо из этих полей.
Трудно определить лучшие практики, близкие к выпуску, но кажется, что, если вам не нужно резко переопределить модель User, тогда вы должны использовать AbstractUser
, где это возможно.
Вот документы для расширения модели пользователя с помощью AbstractUser
Ваш models.py
будет выглядеть примерно так:
class MyUser(AbstractUser):
gender = models.DateField()
location = models.CharField()
birthday = models.CharField()
MyUser
будет иметь стандартные поля электронной почты, пароль, имя пользователя и т.д., которые поставляются с моделью пользователя, и три дополнительных поля выше.
Затем вам нужно добавить AUTH_USER_MODEL
в свой settings.py
:
AUTH_USER_MODEL = 'myapp.MyUser'