First, Collin's code works if you just want a workaround to the default authentication class. However, if you mean having User Authentication with email as the primary attribute, then you have to override the default authentication/user object. Django currently allows custom user models, forms, etc. The following code works for me if you want to work with email through out the project instead of the default username:
#here, I basically create a user class that can be authenticated using email and password through a user manager and a user model object
A custom user manager to deal with emails as unique identifiers for auth
instead of usernames. The default that's used is "UserManager"