Unfortunately, "BEST" is very subjective. Django provides many flexible ways for you to model users (and customize users) so that you can leverage their built in authentication and user system.
- Will django's built in user system provide you with everything you need for your requirments? If so then use it, If you just need to add a couple more fields, create a new model and give it a onetoone with the built in user object
- Not so much, django provides a new
AbstractBaseUser
that should be flexible enough to do whatever you need to do regarding users, I have not used it personally yet, but documentation on it can be found https://docs.djangoproject.com/en/dev/topics/auth/customizing/ - Does a third party app provide you with your desired functionality out of the box, or with minimal configuration? Probably
Basically, it all depends on your requirements! Django's built in user should be more then sufficient for the majority of websites