36 课程模块——查询所有章节接口

查询所有章节接口(要显示章节下的所有课时)

1 序列化类

serializer.py

class CourseSectionSerializer(serializers.ModelSerializer):    #用于子序列化
    class Meta:
        model = CourseSection
        fields = ['id', 'name', 'orders', 'section_link', 'duration', 'free_trail']


class CourseChapterSerializer(serializers.ModelSerializer):
    class Meta:
        model = CourseChapter
        fields = ['id', 'name', 'coursesections']

    # 子序列化,注意many=True
    # 方式一:
    coursesections = CourseSectionSerializer(many=True)
    # 方式二:
    # coursesections=serializers.SerializerMethodField()
    # def get_coursesections(self,obj):
    #     return []

    # 方式三:写在models中

视图类

# 课程章节接口
class CourseChapterView(GenericViewSet, ListModelMixin):
    # 查询所有章节
    # 按课程过滤功能
    queryset = CourseChapter.objects.all()
    serializer_class = CourseChapterSerializer
    filter_backends = [DjangoFilterBackend]
    filter_fields = ('course',)

路由

router.register('course_chapter', views.CourseChapterView, 'course_chapter')

 

 

posted @ 2022-03-01 21:58  甜甜de微笑  阅读(32)  评论(0编辑  收藏  举报