pythonpython-3.xdjangodjango-modelsdjango-users

AbstractUser vs AbstractBaseUser in Django?


The use of AbstractUser and AbstractBaseUser looks quite similar.

from django.contrib.auth.models import AbstractUser, AbstractBaseUser

What is the difference between the two?


Solution

  • The documentation explains this fully. AbstractUser is a full User model, complete with fields, as an abstract class so that you can inherit from it and add your own profile fields and methods. AbstractBaseUser only contains the authentication functionality, but no actual fields: you have to supply them when you subclass.