在django rest框架3中使用可写嵌套序列化器创建多个对象

mat*_*eok 5 python django serializer django-rest-framework

在drf3中,您现在可以通过覆盖create()方法并自己处理validated_data来实现可写嵌套序列化程序

def create(self, validated_data):
    profile_data = validated_data.pop('profile')
    user = User.objects.create(**validated_data)
    Profile.objects.create(user=user, **profile_data)
    return user
Run Code Online (Sandbox Code Playgroud)

如果配置文件是许多关系和validated_data居然会包含多个配置文件.如何在create中创建多个相关对象?

mat*_*eok 5

正如krs所建议的那样,答案如下:

def create(self, validated_data):
    profiles_data = validated_data.pop('profiles')
    user = User.objects.create(**validated_data)
    for profile_data in profiles_data:
        profile = Profile.objects.create(user=user,**profile_data)
    return user
Run Code Online (Sandbox Code Playgroud)