diff --git a/api/v1/serializers.py b/api/v1/serializers.py index 2ac04e6d..ed517425 100644 --- a/api/v1/serializers.py +++ b/api/v1/serializers.py @@ -169,8 +169,7 @@ class CourseSerializer(CourseCreateSerializer): gallery = GallerySerializer() -class LessonSerializer(serializers.ModelSerializer): - cover = ImageObjectSerializer() +class LessonCreateSerializer(serializers.ModelSerializer): class Meta: model = Lesson @@ -187,13 +186,17 @@ class LessonSerializer(serializers.ModelSerializer): read_only_fields = ( 'id', - 'cover', 'content', 'created_at', 'update_at', ) +class LessonSerializer(LessonCreateSerializer): + course = CourseSerializer() + cover = ImageObjectSerializer() + + class ImageSerializer(serializers.ModelSerializer): img = ImageObjectSerializer() diff --git a/api/v1/views.py b/api/v1/views.py index b92e3422..016f920b 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -14,7 +14,7 @@ from .serializers import ( GallerySerializer, GalleryImageSerializer, GalleryImageCreateSerializer, UserSerializer, UserPhotoSerializer, LessonSerializer, CourseCreateSerializer, - ImageObjectSerializer, + ImageObjectSerializer, LessonCreateSerializer, ) from .permissions import IsAdmin, IsAdminOrIsSelf, IsAuthorOrAdmin, IsAuthorObjectOrAdmin @@ -82,7 +82,11 @@ class LessonViewSet(ExtendedModelViewSet): queryset = Lesson.objects.select_related( 'course', 'cover' ).prefetch_related('content').all() - serializer_class = LessonSerializer + serializer_class = LessonCreateSerializer + serializer_class_map = { + 'list': LessonSerializer, + 'retrieve': LessonSerializer, + } filter_fields = ('course',) search_fields = ('title', 'short_description',) ordering_fields = ('title', 'created_at', 'update_at',)