Take a look at this blog post: it provides all the design principles to achieve your goals. http://www.roguelynn.com/words/django-custom-user-models/
I would also take a look here for more information about Configurable User Models, if you want to have your own authentication scheme: http://procrastinatingdev.com/django/using-configurable-user-models-in-django-1-5/