多对多反序列化使用

  • 多对多反序列化 的添加和编辑,其实就是重写 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
    

results matching ""

    No results matching ""