So I want to join some tables together for every request, so I thought it makes sense to do that in the user manager since it gets the user on every page too (do it all in one db query). Here's how i added it:
class CustomUserManager(UserManager):
def get_queryset(self):
return (
super()
.get_queryset()
.select_related(...)
.annotate(...)
)
class User(AbstractUser):
objects = CustomUserManager()
## settings.py
AUTH_USER_MODEL = "myapp.User"
And yes, this works, but i'm getting two queries now. They're coming from packages that use the default user model, e.g.
request._cached_user = auth.get_user(request)
\site-packages\django\contrib\auth\__init__.py in get_user(216)
user = backend.get_user(user_id)
\site-packages\django\contrib\auth\backends.py in get_user(157)
user = UserModel._default_manager.get(pk=user_id)
How can I make sure the default user model (and UserManager) is properly set everywhere so all INSTALLED_APPS use my new ones? Thanks