djangoemaildjango-1.5django-auth-models

Can I change the USERNAME_FIELD in Django 1.5 without creating a custom user?


I am trying to use the email field in the default Django user model as the username. I am using Django 1.5 and I saw that the default user has a USERNAME_FIELD property.

In my project, I would like to set the following USERNAME_FIELD = 'email' as a default in the user model.

This small but fundamental tweak is the only thing I would like to change in the user model. I was wondering if there is a way of changing the USERNAME_FIELD without having to subclass the AbstractUser. I saw in this question that you can subclass the AbstractUser and write a custom manager for it.

So I was wondering if there is a simpler way of changing that property?

And if not, what would be the minimal way of extending the AbstractUser to use the email field as username?


Solution

  • #Your app's __init__.py
    
    from django.contrib.auth.models import User
    
    User.USERNAME_FIELD = 'email'