2014-12-03 15 views
5

In drf3 ora è possibile implementare un serializzatore nidificato scrivibile sovrascrivendo il metodo create() e la manipolazione validated_data tecreare più oggetti utilizzando serializzatori nidificati scrivibili in quadro resto Django 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 

Che cosa succede se il profilo è stato un a molte relazioni e validated_data contengono effettivamente profili multipli. Come creo più oggetti correlati in creazione?

+0

Se si sa che in realtà contiene i dati che si pensa si può semplicemente creare in un ciclo – krs

+0

si potrebbe fornire un esempio? – matteok

+1

non so come vengono dati i dati come non ho ancora aggiornato a 3, ma se si tratta di un elenco, un normale ciclo di esecuzione farebbe il lavoro – krs

risposta

5

Come suggerito dal KRS La risposta è la seguente:

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