2014-12-03 19 views
5

W drf3 można teraz wdrożyć zapisu zagnieżdżony serializatora poprzez nadpisanie metody create() i obsługi validated_data siebieutworzyć wiele obiektów za pomocą zapisywalnych zagnieżdżone serializers w Django spoczynku ramach 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 

Co jeśli profil był do wiele relacji i validated_data faktycznie zawierałby wiele profili. Jak utworzyć wiele powiązanych obiektów w grze?

+0

Jeśli wiesz, że rzeczywiście zawiera dane, że można po prostu stworzyć je w pętli – krs

+0

można podać przykład? – matteok

+1

Nie wiem, w jaki sposób dane są podane, ponieważ nie zostały jeszcze zaktualizowane do wersji 3, ale jeśli jest to lista, to normalna pętla fory wykonałaby zadanie – krs

Odpowiedz

5

Jak sugeruje KRS odpowiedź jest następująca:

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