Okay, I know there are a handful of other apps that already do this, but I wasn't quite happy with anything that was out there.
I've pushed the django-email-as-username package to PyPI.
I think it's pretty comprehensive...
1. Provides an email auth backend and helper functions for creating users.
2. Patches the Django admin to handle email based user authentication.
3. Overides the `createsuperuser` command to create users with email only. (Eg during initial `syncdb`)
4. Treats email authentication as case-insensitive.
There's a few outstanding tickets for extra little tweaks to improve things even more, such as providing a migration for adding it to existing projects and so on.
Would appreciate any forks/ideas for improvements etc.etc.
Cheers,
Tom