28👍
You want to extend your user model to the AbstractUser
and add your additional fields. AbstractUser
inherits all of the standard user profile fields, whereas AbstractBaseUser
starts you from scratch without any of those fields.
It’s hard to define best practices this close to the release, but it seems that unless you need to drastically redefine the User model, then you should use AbstractUser
where possible.
Here are the docs for extending the User model using AbstractUser
Your models.py
would then look something like this:
class MyUser(AbstractUser):
gender = models.DateField()
location = models.CharField()
birthday = models.CharField()
MyUser
will then have the standard email, password, username, etc fields that come with the User model, and your three additional fields above.
Then you need to add the AUTH_USER_MODEL
to your settings.py
:
AUTH_USER_MODEL = 'myapp.MyUser'