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
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.
AUTH_USER_MODEL = "app_name.User"
Now register the model in the app’s 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