In Django, the default user profile table is created as auth_user. Alternatively, we can create our own customized UserProfile to replace Django default auth_user table.
Define UserProfile Model
After creating the users app, in the models.py file, define the UserProfile model. I will inherit Django’s AbstractUser
from django.db import models
from django.contrib.auth.models import AbstractUser
GENDER_CHOICES = (
    ("M", "Male"),
    ("F", "Female")
)
# Create your models here.
class UserProfile(AbstractUser):
    nick_name = models.CharField(max_length=50, null=True, blank=True)
    birthday = models.DateField(null=True, blank=True)
    gender = models.CharField(choices=GENDER_CHOICES, max_length=6)
    address = models.CharField(max_length=100, default="")
    mobile = models.CharField(max_length=11, unique=True)
    image = models.ImageField(upload_to="head_image/%Y/%m", default="head_image/default.jpg")
    class Meta:
        verbose_name = "User Profile"
    def __str__(self):
        if self.nick_name:
            return self.nick_name
        return self.usernamePython
Configure Settings
In the project settings.py file, add the following
AUTH_USER_MODEL = "users.UserProfile"Python
Make migrations and migrate
In the shell, make migrations and migrate
python manage.py makemigrations
python manage.py migrateShell
Now, users_userprofile table will replace Django’s default auth_user table as the user management table.