当前位置:  开发笔记 > 编程语言 > 正文

如何从一个序列化程序调用序列化程序的create()方法

如何解决《如何从一个序列化程序调用序列化程序的create()方法》经验,为你挑选了1个好方法。

我有两个序列化程序,"UserSerializer"和"CustomerSerializer"如下所示

class UserSerializer(serializers.ModelSerializer):

    def create(self, validated_data):
        return User.objects.create(**validated_data)

    class Meta:
        model = User
        fields = '__all__'


class CustomerSerializer(serializers.ModelSerializer):

    def create(self, validated_data):
        return Customer.objects.create(**validated_data)

    class Meta:
        model = Customer
        fields = '__all__'

当我用POST请求命中用户api时,它调用UserSerializer的create方法来保存用户对象.

现在,在保存用户的同时,我也希望使用用户api保存客户对象.因此,对于UserSerializer的create方法,我想调用CustomerSerializer的create()方法以便保存客户对象.我怎么做 ?



1> Edwin Lunand..:

你可以CustomerSerializercreate里面的方法中调用UserSerializer.例如

class UserSerializer(serializers.ModelSerializer):

    def create(self, validated_data):
        customer_serializer = CustomerSerializer(validated_data.get('customer'))
        customer_serializer.save()
        return User.objects.create(**validated_data)

    class Meta:
        model = User
        fields = '__all__'

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有