diff --git a/api/v1/serializers.py b/api/v1/serializers.py index 5e6757eb..3e80d04c 100644 --- a/api/v1/serializers.py +++ b/api/v1/serializers.py @@ -225,7 +225,7 @@ class ImageSerializer(serializers.ModelSerializer): img = ImageObjectSerializer() -class TextSerializer(serializers.ModelSerializer): +class TextCreateSerializer(serializers.ModelSerializer): class Meta: model = Text @@ -246,8 +246,12 @@ class TextSerializer(serializers.ModelSerializer): ) -class ImageTextSerializer(serializers.ModelSerializer): - img = ImageObjectSerializer() +class TextSerializer(TextCreateSerializer): + course = CourseSerializer() + lesson = LessonSerializer() + + +class ImageTextCreateSerializer(serializers.ModelSerializer): class Meta: model = ImageText @@ -270,7 +274,13 @@ class ImageTextSerializer(serializers.ModelSerializer): ) -class VideoSerializer(serializers.ModelSerializer): +class ImageTextSerializer(ImageTextCreateSerializer): + course = CourseSerializer() + lesson = LessonSerializer() + img = ImageObjectSerializer() + + +class VideoCreateSerializer(serializers.ModelSerializer): class Meta: model = Video @@ -291,6 +301,11 @@ class VideoSerializer(serializers.ModelSerializer): ) +class VideoSerializer(VideoCreateSerializer): + course = CourseSerializer() + lesson = LessonSerializer() + + class UserSerializer(serializers.ModelSerializer): class Meta: diff --git a/api/v1/views.py b/api/v1/views.py index d487a057..f283e060 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -7,14 +7,18 @@ from rest_framework.response import Response from . import ExtendedModelViewSet from .serializers import ( - CategorySerializer, CourseSerializer, + CategorySerializer, + CourseSerializer, CourseCreateSerializer, MaterialSerializer, LikeSerializer, - ImageSerializer, TextSerializer, ImageCreateSerializer, - ImageTextSerializer, VideoSerializer, - GallerySerializer, GalleryImageSerializer, GalleryImageCreateSerializer, + ImageSerializer, ImageCreateSerializer, + TextSerializer, TextCreateSerializer, + ImageTextSerializer, ImageTextCreateSerializer, + VideoSerializer, VideoCreateSerializer, + GallerySerializer, + GalleryImageSerializer, GalleryImageCreateSerializer, UserSerializer, UserPhotoSerializer, - LessonSerializer, CourseCreateSerializer, - ImageObjectSerializer, LessonCreateSerializer, + LessonSerializer, LessonCreateSerializer, + ImageObjectSerializer, ) from .permissions import IsAdmin, IsAdminOrIsSelf, IsAuthorOrAdmin, IsAuthorObjectOrAdmin @@ -118,7 +122,11 @@ class TextViewSet(ExtendedModelViewSet): queryset = Text.objects.select_related( 'course', 'lesson' ).all() - serializer_class = TextSerializer + serializer_class = TextCreateSerializer + serializer_class_map = { + 'list': TextSerializer, + 'retrieve': TextSerializer, + } search_fields = ('title',) ordering_fields = ('title', 'created_at', 'update_at', 'position',) # permission_classes = (IsAuthorOrAdmin,) @@ -131,7 +139,11 @@ class ImageTextViewSet(ExtendedModelViewSet): queryset = ImageText.objects.select_related( 'course', 'lesson', 'img' ).all() - serializer_class = ImageTextSerializer + serializer_class = ImageTextCreateSerializer + serializer_class = { + 'list': ImageTextSerializer, + 'retrieve': ImageTextSerializer, + } search_fields = ('title',) ordering_fields = ('title', 'created_at', 'update_at', 'position',) # permission_classes = (IsAuthorOrAdmin,) @@ -144,7 +156,11 @@ class VideoViewSet(ExtendedModelViewSet): queryset = Video.objects.select_related( 'course', 'lesson' ).all() - serializer_class = VideoSerializer + serializer_class = VideoCreateSerializer + serializer_class_map = { + 'list': VideoSerializer, + 'retrieve': VideoSerializer, + } search_fields = ('title',) ordering_fields = ('title', 'created_at', 'update_at', 'position',) # permission_classes = (IsAuthorOrAdmin,)