[Answered ]-ModelName(django.contrib.auth.models.User) vs ModelName(models.Model)


Either way will technically work. Subclassing the User model is effectively the same as subclassing models.Model and then including a user = models.OneToOneField(User) line.

That said, for what it’s worth, the Django book opts for the models.Model route. I also agree that this is syntactically more straightforward.

I would also point you to the storing additional information about users section of the Django documentation, which will teach you about the AUTH_PROFILE_MODULE setting and the get_profile() method. It is very much best practice to use those.

Leave a comment