diff --git a/aleksis/apps/alsijil/tasks.py b/aleksis/apps/alsijil/tasks.py
index e8dead0260d52fa7bb939deba49bb9b846b20c91..c7a9ae2b871fd9ac4c1e4feea58f9a333676a699 100644
--- a/aleksis/apps/alsijil/tasks.py
+++ b/aleksis/apps/alsijil/tasks.py
@@ -3,7 +3,7 @@ from typing import Optional
 from copy import deepcopy
 from datetime import date, timedelta
 
-from django.db.models import Q
+from django.db.models import Q, Prefetch
 from django.utils.translation import gettext as _
 
 from calendarweek import CalendarWeek
@@ -175,12 +175,10 @@ def generate_full_register_printout(
 
     if include_teachers_and_subjects_table:
         group = group.prefetch_related(
-            "courses",
-            "courses__subject",
+            Prefetch("courses", queryset=Course.objects.select_related("subject")),
             "courses__teachers",
             "child_groups",
-            "child_groups__courses",
-            "child_groups__courses__subject",
+            Prefetch("child_groups__courses", queryset=Course.objects.select_related("subject")),
             "child_groups__courses__teachers",
         )