From a9e63c3ab2ac1672189cf71b0a50c3e8060b806f Mon Sep 17 00:00:00 2001 From: duckduckgrayduck <102841251+duckduckgrayduck@users.noreply.github.com> Date: Wed, 21 Jan 2026 11:16:41 -0600 Subject: [PATCH] Try to fix user tests --- documentcloud/users/views.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/documentcloud/users/views.py b/documentcloud/users/views.py index 960ba757..1a94fd75 100644 --- a/documentcloud/users/views.py +++ b/documentcloud/users/views.py @@ -98,9 +98,23 @@ def retrieve(self, request, *args, **kwargs): return super().retrieve(request, *args, **kwargs) def get_queryset(self): - return User.objects.get_viewable(self.request.user).preload( - self.request.user, self.request.query_params.get("expand", "") - ) + """ + Return viewable users, with optional prefetching to avoid N+1 queries. + """ + expand = self.request.query_params.get("expand", "") + + # Base queryset + qs = User.objects.get_viewable(self.request.user) + + # Prefetch related fields if expanding organization + if "organization" in expand: + qs = qs.select_related( + "organization", # user's active organization + "organization__parent", # organization's parent + ).prefetch_related( + "organization__groups" # organization's groups + ) + return qs.preload(self.request.user, expand) def get_object(self): """Allow one to lookup themselves by specifying `me` as the pk"""