2014-12-03 74 views
5

在drf3您现在可以通过重写create()方法和处理validated_data自己实现一个可写的嵌套串行创建使用Django的REST框架写嵌套串行多个对象3

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 

如果什么轮廓是到许多关系和validated_data实际上将包含多个配置文件。我将如何在创建中创建多个相关对象?

+0

如果你知道它实际上包含了你认为你可以在一个循环 – krs 2014-12-03 11:43:48

+0

创建自己的数据,你可以提供一个例子吗? – matteok 2014-12-03 11:47:38

+1

我不知道数据是如何给出的,因为我还没有升级到3,但如果它是一个列表,然后正常的for循环会做这项工作 – krs 2014-12-03 11:48:35

回答

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 
相关问题