Browse Source

fix: optimize queryset in CourseListAPIView with select_related and improved filtering

master
mortezaei 11 months ago
parent
commit
a2efd6e354
  1. 18
      apps/course/views/course.py

18
apps/course/views/course.py

@ -33,15 +33,6 @@ class CourseListAPIView(ListAPIView):
filter_backends = [SearchFilter] filter_backends = [SearchFilter]
search_fields = ['title', 'category__name', 'professor__fullname'] search_fields = ['title', 'category__name', 'professor__fullname']
def get_queryset(self):
"""
Optimized queryset with select_related for ForeignKey relationships
"""
return Course.objects.select_related(
'category',
'professor'
).exclude(status=Course.StatusChoices.INACTIVE)
@swagger_auto_schema( @swagger_auto_schema(
operation_description=doc_course_list(), operation_description=doc_course_list(),
manual_parameters=[ manual_parameters=[
@ -82,7 +73,14 @@ class CourseListAPIView(ListAPIView):
return super().get(request, *args, **kwargs) return super().get(request, *args, **kwargs)
def get_queryset(self): def get_queryset(self):
queryset = super().get_queryset()
"""
Optimized queryset with select_related for ForeignKey relationships and filtering
"""
queryset = Course.objects.select_related(
'category',
'professor'
).exclude(status=Course.StatusChoices.INACTIVE)
request = self.request request = self.request
filters = request.query_params filters = request.query_params

Loading…
Cancel
Save