You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

34 lines
899 B

from rest_framework import viewsets
from . import ExtendedModelViewSet
from .serializers import (
CategorySerializer, CourseSerializer,
MaterialSerializer, LikeSerializer,
)
from apps.course.models import Category, Course, Material, Like
class MaterialViewSet(ExtendedModelViewSet):
queryset = Material.objects.all()
serializer_class = MaterialSerializer
class LikeViewSet(ExtendedModelViewSet):
queryset = Like.objects.select_related('user').all()
serializer_class = LikeSerializer
class CategoryViewSet(ExtendedModelViewSet):
queryset = Category.objects.all()
serializer_class = CategorySerializer
class CourseViewSet(ExtendedModelViewSet):
queryset = Course.objects.select_related(
'author', 'category'
).prefetch_related(
'likes', 'materials'
).all()
serializer_class = CourseSerializer
filter_fields = ('category',)