Без переопределения никак не обойтись. Вот приблизительно, что нужно сделать, чтобы переопределить стандартные поля Юзера, и заменить стандартный логин по юзернейму на и-мэйл:
Создаете accounts
, а в ней переопределяете поля под Ваши нужды:
models.py
from django.contrib.auth.models import AbstractBaseUser
class User(AbstractBaseUser):
email = models.EmailField(max_length=255, unique=True)
full_name = models.CharField(max_length=255, blank=True, null=True)
is_active = models.BooleanField(default=True) # can login
staff = models.BooleanField(default=False) # staff user non superuser
admin = models.BooleanField(default=False) # superuser
USERNAME_FIELD = 'email' #меняет стандартное поведение для входа
# USERNAME_FIELD and password are required by default
REQUIRED_FIELDS = [] #['full_name'] #python manage.py createsuperuser
И в settings.py
переопределяете модель юзера
AUTH_USER_MODEL = 'accounts.User' #changes the built-in user model to ours