首页 > 解决方案 > 如何使用序列化程序更新功能更新两个模型

问题描述

我的项目中有教师和对话模型,以及一个速率函数,它是一个以教师 ID 和速率作为输入的 POST API。教师有电话字段作为 ID。当调用 rate 函数时,teacher 的 rate 和 raters 字段以及对话的 isRated 字段必须更改。
如何在一个序列化程序中更新两个模型?

这是我的对话模型:

class Conversation(models.Model):
   isRated = models.BooleanField(null=False, default=False)

这是我的教师模型:

class TeacherUsers(models.Model):
     phone = models.IntegerField(unique=True, null=False, default=0)
     rate = models.FloatField(null=True, default=0)
     raters = models.IntegerField(unique=True, null=False, default=0)

以及仅更新教师费率的序列化程序:

class RateSerializer(serializers.Serializer):
    teacherId = serializers.IntegerField(required=True)
    rate = serializers.IntegerField(required=False)

    def update(self, instance, validated_data):
        instance.rate = validated_data['rate']
        instance.raters = validated_data['raters']
        instance.save()
        return instance

标签: djangodjango-serializer

解决方案


推荐阅读