rest_framework的序列化
from rest_framework import serializers
from app01.models import *
# source可以处理one2one/fk/choice字段
class CourseModelSerializers(serializers.ModelSerializer):
# 课程列表序列化 # choices选择中文显示
level = serializers.CharField(source="get_level_display")
class Meta:
model = Course
fields = ["title", "course_img", "level"]
class CourseDetailModelSerializers(serializers.Serializer):
# 课程详情序列化
course = serializers.CharField(source="course.title")
slogon = serializers.CharField()
why = serializers.CharField()
# SerializerMethodField处理多对多关系
recommend_courses = serializers.SerializerMethodField()
# depth = 1 显示深度关联(无限深一般(1-10层))
def get_recommend(self, obj):
temp = []
for obj in obj.recommend_courses.all():
temp.append(obj.title)
return temp
class ChapterModelSerializers(serializers.Serializer):
# 章节序列化
num = serializers.IntegerField()
name = serializers.CharField()
course = serializers.CharField(source="course.title")