diff --git a/api/v1/views.py b/api/v1/views.py index 043c0fb8..16a0fc6f 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -81,6 +81,7 @@ class CourseViewSet(ExtendedModelViewSet): serializer_class_map = { 'list': CourseSerializer, 'retrieve': CourseSerializer, + 'draft': CourseSerializer, } filter_fields = ('category', 'status', 'is_infinite', 'is_featured',) search_fields = ('author__email', 'title', 'category__title',) @@ -91,6 +92,13 @@ class CourseViewSet(ExtendedModelViewSet): # 'delete': IsAdmin, # } + @list_route(methods=['get']) + def draft(self, request): + drafts = Course.objects.filter(author=request.user, status=Course.DRAFT) + serializer = self.get_serializer_class() + serialized_data = serializer(instance=drafts.last()) + return Response(serialized_data.data) + class LessonViewSet(ExtendedModelViewSet): queryset = Lesson.objects.select_related( diff --git a/apps/course/views.py b/apps/course/views.py index 75ff396a..dce54105 100644 --- a/apps/course/views.py +++ b/apps/course/views.py @@ -152,7 +152,7 @@ class CourseEditView(TemplateView): elif drafts.exists(): self.object = drafts.last() else: - self.object = None + self.object = Course.objects.create() return super().get(request) def get_context_data(self):