diff --git a/apps/course/views/course.py b/apps/course/views/course.py index ae5ea35..b646c57 100644 --- a/apps/course/views/course.py +++ b/apps/course/views/course.py @@ -72,11 +72,17 @@ class CourseListAPIView(ListAPIView): queryset = super().get_queryset() request = self.request filters = request.query_params - if category := filters.get('category_slug'): - queryset = queryset.filter(category__slug=category) - if status := filters.get('status'): - queryset = queryset.filter(status=status) + # Handle category_slug with multiple values separated by commas + if category_slugs := filters.get('category_slug'): + category_slugs_list = category_slugs.split(',') + queryset = queryset.filter(category__slug__in=category_slugs_list) + + # Handle status with multiple values separated by commas + if statuses := filters.get('status'): + statuses_list = statuses.split(',') + queryset = queryset.filter(status__in=statuses_list) + if is_free := filters.get('is_free'): is_free = is_free.lower() == 'true' queryset = queryset.filter( @@ -91,6 +97,7 @@ class CourseListAPIView(ListAPIView): + class CourseDetailAPIView(RetrieveAPIView): queryset = Course.objects.all() serializer_class = CourseDetailSerializer