Login With Email Instead Of Username In Django Admin
In this tutorial, we are going to learn how to log in using email instead of the username in Django admin. It's easy, you can use it on the frontend too
let's start:
models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
class User(AbstractUser):
USERNAME_FIELD = "email"
email = models.EmailField(max_length=255, unique=True)
REQUIRED_FIELDS = [
"username",
]
Don’t forget to point AUTH_USER_MODEL
to it.
settings.py
AUTH_USER_MODEL = "app_name.User"
Now register the model in the app’s admin.py:
admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User
admin.site.register(User, UserAdmin)
You need to run the makemigrations command
python manage.py makemigrations
then have to run migrate command
python manage.py migrate
Then you have to create a superuser
python manage.py createsuperuser
For more information see Django docs