Python全系列 教程
3567个小节阅读:5930.6k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
修改course_app\serialiazers.py
模块,添加获取课程阶段列表序列化器
xxxxxxxxxx
191from rest_framework import serializers
2
3from .models import Stage
4
5class CourseListSerializer(serializers.ModelSerializer):
6 '''
7 课程分类序列化器
8 '''
9 class Meta:
10 model = Course
11 fields = '__all__'
12
13class StageListSerializer(serializers.ModelSerializer):
14 '''
15 课程阶段序列化器
16 '''
17 class Meta:
18 model = Stage
19 fields = '__all__'
修改course_app\views.py
模块,添加获取课程阶段列表视图
xxxxxxxxxx
251from rest_framework import generics
2
3from .models import Stage
4from .serializers import StageListSerializer
5
6
7class ResultsSetPagination(PageNumberPagination):
8 '''
9 自定义分页器
10 '''
11 page_query_param = 'page'
12 page_size_query_param = 'size'
13 page_size = 10
14
15# Create your views here.
16class CourseListView(generics.ListAPIView):
17 queryset = Course.objects.all()
18 serializer_class = CourseListSerializer
19
20 # 设置分页器
21 pagination_class = ResultsSetPagination
22
23class StageListView(generics.ListAPIView):
24 queryset = Stage.objects.all()
25 serializer_class = StageListSerializer
修改course_app\urls.py
模块,添加获取课程阶段列表视图接口路由
xxxxxxxxxx
61from django.urls import path
2
3from . import views
4urlpatterns = [
5 path('stages/',views.StageListView.as_view()),
6]
xxxxxxxxxx
11pip install django-filter==23.2
配置bz_edu_project\settings.py
基本信息,增加django-filter默认类
xxxxxxxxxx
51# 配置REST_FRAMEWORK参数
2REST_FRAMEWORK = {
3 # 配置过滤器
4 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'],
5}
修改course_app\views.py
模块,添加获取课程列表视图过滤参数
xxxxxxxxxx
101from rest_framework import generics
2
3from .serializers import StageListSerializer
4
5class StageListView(generics.ListAPIView):
6 queryset = Stage.objects.all()
7 serializer_class = StageListSerializer
8
9 # 设置数据过滤器
10 filterset_fields = ('course',)