多对多反序列化使用
多对多反序列化 的添加和编辑,其实就是重写
create()
和update()
方法from rest_framework import serializers from . import models # 反序列化 class TeacherUnserializer(serializers.Serializer): # required = False 可以传值,也可以不传值 id = serializers.IntegerField(required=False) student_id = serializers.ListField() # 添加 def create(self,data): # 获取老师的id tid = data.pop('id') # 获取学生的id student_id = data.pop('student_id') # 获取老师的实例 teacherobj = models.Teacher.objects.filter(id=tid).first() # 添加数据 teacherobj.students.set( student_id ) # 返回老师的实例 return teacherobj # 更新 def update(self, instance, validated_data): # 获取学生的id列表 student_id = validated_data.get('student_id') # 更新数据 instance.students.set(student_id) # 返回实例 return instance