Skip to content

Commit e95ffcc

Browse files
Fix N+1 query on homepage for recent courses (#357)
Add select_related("course") to the recent_views queryset to prevent multiple database queries when accessing course objects. This resolves the performance issue where a separate query was executed for each CourseUserView when building the recent_courses list. Fixes DOCHUB-21Y Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent ab05747 commit e95ffcc

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

www/views.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@ def index(request):
2222
.prefetch_related("tags")
2323
.order_by("-created")[:ndocs]
2424
)
25-
recent_views = CourseUserView.objects.filter(user=request.user).order_by(
26-
"-last_view"
27-
)[:5]
25+
recent_views = (
26+
CourseUserView.objects.filter(user=request.user)
27+
.select_related("course")
28+
.order_by("-last_view")[:5]
29+
)
2830
recent_courses = [x.course for x in recent_views]
2931
context = {
3032
"search": SearchForm(),

0 commit comments

Comments
 (0)