class models.CustomUser
-
USERNAME_FIELD
-
A string describing the name of the field on the User model that is used as the unique identifier. This will usually be a username of some kind, but it can also be an email address, or any other unique identifier. The field must be unique (i.e., have
unique=True
set in its definition), unless you use a custom authentication backend that can support non-unique usernames.In the following example, the field
identifier
is used as the identifying field:class MyUser(AbstractBaseUser): identifier = models.CharField(max_length=40, unique=True) ... USERNAME_FIELD = 'identifier'
USERNAME_FIELD
now supportsForeignKey
s. Since there is no way to pass model instances during thecreatesuperuser
prompt, expect the user to enter the value ofto_field
value (theprimary_key
by default) of an existing instance.
-
REQUIRED_FIELDS
-
A list of the field names that will be prompted for when creating a user via the
createsuperuser
management command. The user will be prompted to supply a value for each of these fields. It must include any field for whichblank
isFalse
or undefined and may include additional fields you want prompted for when a user is created interactively.REQUIRED_FIELDS
has no effect in other parts of Django, like creating a user in the admin.For example, here is the partial definition for a
User
model that defines two required fields - a date of birth and height:class MyUser(AbstractBaseUser): ... date_of_birth = models.DateField() height = models.FloatField() ... REQUIRED_FIELDS = ['date_of_birth', 'height']
Note
REQUIRED_FIELDS
must contain all required fields on yourUser
model, but should not contain theUSERNAME_FIELD
orpassword
as these fields will always be prompted for.REQUIRED_FIELDS
now supportsForeignKey
s. Since there is no way to pass model instances during thecreatesuperuser
prompt, expect the user to enter the value ofto_field
value (theprimary_key
by default) of an existing instance.
-
is_active
-
A boolean attribute that indicates whether the user is considered “active”. This attribute is provided as an attribute on
AbstractBaseUser
defaulting toTrue
. How you choose to implement it will depend on the details of your chosen auth backends. See the documentation of theis_active attribute on the built-in user model
for details.
-
get_full_name()
-
A longer formal identifier for the user. A common interpretation would be the full name of the user, but it can be any string that identifies the user.
-
get_short_name()
-
A short, informal identifier for the user. A common interpretation would be the first name of the user, but it can be any string that identifies the user in an informal way. It may also return the same value as
django.contrib.auth.models.User.get_full_name()
.
Importing AbstractBaseUser
AbstractBaseUser
and BaseUserManager
are importable from django.contrib.auth.base_user
so that they can be imported without including django.contrib.auth
in INSTALLED_APPS
(this raised a deprecation warning in older versions and is no longer supported in Django 1.9).
The following attributes and methods are available on any subclass of AbstractBaseUser
:
Please login to continue.