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")

posted @ 2018-09-26 19:20  知你几分  阅读(168)  评论(0编辑  收藏  举报