Login With Email Instead Of User Name In Django Admin

Oct. 26, 2022

1 min read

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:


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)

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


django Email-Login Authentication Appreciate you stopping by my post! 😊

Add a comment

Note: If you use these tags, write your text inside the HTML tag.
Login Required
Author's profile
Profile Image

Abdulla Fajal

Django Developer

With 'espere.in' under my care, I, Abdulla Fajal, graciously invite your insights and suggestions, as we endeavour to craft an exquisite online experience together.