课程模块之-章节分类接口

一、章节分类接口

路由层

course/urls.py

from django.urls import path, re_path, include
from . import views
from rest_framework.routers import SimpleRouter
router = SimpleRouter()
router.register('search',views.CoureSearchView,'search')

urlpatterns = [
    path('', include(router.urls)),
]

视图类

course/views.py

from rest_framework.viewsets import GenericViewSet
from rest_framework.mixins import ListModelMixin,RetrieveModelMixin
from . import models
from . import serializer
from .num_pagenation import PageNumberPagination
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import SearchFilter

# 后台搜索接口
class CoureSearchView(GenericViewSet,ListModelMixin):
    queryset = models.Course.objects.filter(is_delete=False,is_show=True)
    serializer_class = serializer.CoursesModelSerializer
    pagination_class = PageNumberPagination

    filter_backends=[SearchFilter]
    search_fields=['name']

序列化器

course/serializer.py

from rest_framework import serializers
from . import models

# 写一个teacher的序列化器作为课程序列化器的子序列化器
class TeacherSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Teacher
        fields = ['id','name','role_name','signature','image','brief']


class CoursesModelSerializer(serializers.ModelSerializer):
    # 通过子序列化的方式 获取teacher字段的详情数据
    teacher = TeacherSerializer()
    class Meta:
        model = models.Course
        fields = [
            'id',
            'name',
            'course_img',
            'brief',
            'attachment_path',
            'pub_sections',
            'price',
            'students',
            'period',
            'sections',
            'course_type_name',
            'level_name',
            'status_name',
            'teacher',
            'section_list',
        ]

 

posted @ 2022-06-14 14:16  _yessir  阅读(27)  评论(0)    收藏  举报