As the author of django-primate, I would like to add some comments. Django-primate, which easily allows ju to modify the built-in User model, is just for that. You may need a little more and then use a django primate.
But there are problems, although I do not think that changing the django user model in itself is a problem in general. One of the problems is that the "users" are completely different, the admin user and some other users are often not connected. This can cause problems when, for example, an administrator logs in and then wants to log in as a “regular user”, they do not expect these accounts to be connected and will not automatically register as an administrator user. It causes headaches for no reason. This also leads to many other headaches for implementing the recommended associated profile model, you often need to make sure that for each profile and profile for each contributor user there is a contributor for each user if, for example, you want to use an authentication decoder. The forms and administration of "users" make this even more cumbersome. In short: usually something will go wrong in this process at some point, it's a curse .
I basically abandoned the Contrib user model for anything other than admins. Creating a different user model is really what you want, but you also need the authentication part for this user, so the general use of django contrib User (using it for the wrong reasons). The best solution if you are in this situation is to create your own authentication for this user model. This is actually quite simple, and I cannot recommend this approach enough. I believe that the official recommendation is incorrect and that instead there should be good tools for authenticating user models embedded in django.
source share