课程模块之-章节分类接口
一、章节分类接口
路由层
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', ]


浙公网安备 33010602011771号