django-registration is the first place you should look for registration opportunities in a Django project.
You can use user profiles to store additional information about users, and you can create your own backend for django registration to provide your own forms during the registration process to collect and process this additional information. Note that you must use the django registration development version (see bitbucket page ) to get a simple custom backend right now.
One final caveat - all of this assumes that you are going to use the Django contrib.auth.User model, which is certainly the recommended way to do something (and is enabled by default), but some people prefer to collapse their own.