I am reading the docs at: https://docs.djangoproject.com/en/1.5/topics/auth/customizing/#substituting-a-custom-user-model
So in my settings.py I put:
Unfortunately there's nothing within django.contrib.auth that you can simply subclass to get a model that has
email address in place of user name and
works nicely with other django.contrib.auth-stuff, like groups.
The simplest approach is to copy models.py, admin.py and forms.py from django.contrib.auth, rip out user name all over the place and put in email address in it's place. I've done just that and I'm using it successfully in a couple of client projects.
I've put it up on github and pypi so you can install it with
pip install django-libtech-emailuser
and check the usage instructions on github