|
|
@ -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 |
|
|
|
|
|
|
|
|
|