from django.contrib.auth.base_user import AbstractBaseUser from django.contrib.auth.models import BaseUserManager from django.db import models class CustomEmailFieldUserManager(BaseUserManager): def create_user(self, username, password, email): user = self.model(username=username) user.set_password(password) user.email_address = email user.save(using=self._db) return user class CustomEmailField(AbstractBaseUser): username = models.CharField(max_length=255) password = models.CharField(max_length=255) email_address = models.EmailField(null=True) is_active = models.BooleanField(default=True) EMAIL_FIELD = 'email_address' USERNAME_FIELD = 'username' objects = CustomEmailFieldUserManager()