@@ -42,7 +42,7 @@ def _get_filtered_hosts(filter_params):
4242 from urllib .parse import parse_qs
4343 params = parse_qs (filter_params )
4444
45- hosts = Host .objects .select_related ()
45+ hosts = Host .objects .select_related ('osvariant' , 'arch' , 'domain' )
4646
4747 if 'domain_id' in params :
4848 hosts = hosts .filter (domain = params ['domain_id' ][0 ])
@@ -77,7 +77,7 @@ def _get_filtered_hosts(filter_params):
7777@login_required
7878def host_list (request ):
7979 # Use cached count fields instead of expensive annotations
80- hosts = Host .objects .select_related ()
80+ hosts = Host .objects .select_related ('osvariant' , 'arch' , 'domain' )
8181
8282 if 'domain_id' in request .GET :
8383 hosts = hosts .filter (domain = request .GET ['domain_id' ])
@@ -156,7 +156,7 @@ def host_detail(request, hostname):
156156 hostrepos = HostRepo .objects .filter (host = host )
157157
158158 # Build packages list with update info
159- updates_by_package = {u .oldpackage_id : u for u in host .updates .select_related ()}
159+ updates_by_package = {u .oldpackage_id : u for u in host .updates .select_related ('oldpackage' , 'newpackage' )}
160160 packages_with_updates = []
161161 for package in host .packages .select_related ('name' , 'arch' ).order_by ('name__name' ):
162162 package .update = updates_by_package .get (package .id )
@@ -294,7 +294,7 @@ class HostViewSet(viewsets.ModelViewSet):
294294 """
295295 API endpoint that allows hosts to be viewed or edited.
296296 """
297- queryset = Host .objects .all ()
297+ queryset = Host .objects .select_related ( 'osvariant' , 'arch' , 'domain' ). all ()
298298 serializer_class = HostSerializer
299299 filterset_class = HostFilter
300300
@@ -303,5 +303,5 @@ class HostRepoViewSet(viewsets.ModelViewSet):
303303 """
304304 API endpoint that allows host repos to be viewed or edited.
305305 """
306- queryset = HostRepo .objects .all ()
306+ queryset = HostRepo .objects .select_related ( 'host' , 'repo' ). all ()
307307 serializer_class = HostRepoSerializer
0 commit comments