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