From 1fca200e814b23c388e9e37cf05fc199a857ee7d Mon Sep 17 00:00:00 2001 From: Ivlev Denis Date: Mon, 5 Feb 2018 11:20:17 +0300 Subject: [PATCH] LIL-175 Add serializer, viewset, route for Course model --- api/v1/serializers.py | 35 +++++++++++++++++++++++++++++++++++ api/v1/urls.py | 2 ++ api/v1/views.py | 12 ++++++++++++ 3 files changed, 49 insertions(+) diff --git a/api/v1/serializers.py b/api/v1/serializers.py index e69de29b..4529c7dc 100644 --- a/api/v1/serializers.py +++ b/api/v1/serializers.py @@ -0,0 +1,35 @@ +from rest_framework import serializers + +from apps.course.models import Course + + +class CourseSerializer(serializers.ModelSerializer): + + class Meta: + model = Course + fields = ( + 'id', + 'author', + 'title', + 'short_description', + 'from_author', + 'cover', + 'price', + 'is_infinite', + 'deferred_start_at', + 'category', + 'duration', + 'is_featured', + 'url', + 'status', + 'likes', + 'materials', + 'created_at', + 'update_at', + ) + + read_only_fields = ( + 'id', + 'created_at', + 'update_at', + ) diff --git a/api/v1/urls.py b/api/v1/urls.py index 9bff9626..f920c403 100644 --- a/api/v1/urls.py +++ b/api/v1/urls.py @@ -6,8 +6,10 @@ from rest_framework.routers import DefaultRouter from drf_yasg.views import get_schema_view from drf_yasg import openapi +from .views import CourseViewSet router = DefaultRouter() +router.register(r'courses', CourseViewSet, base_name='courses') schema_view = get_schema_view( diff --git a/api/v1/views.py b/api/v1/views.py index e69de29b..96b6feae 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -0,0 +1,12 @@ +from rest_framework import viewsets + +from .serializers import CourseSerializer +from . import ExtendedModelViewSet + +from apps.course.models import Course + + +class CourseViewSet(ExtendedModelViewSet): + queryset = Course.objects.all() + serializer_class = CourseSerializer + filter_fields = ('category',)