2016-05-19 3 views
1

Je suis en train d'écrire un sérialiseur imbriquée pour les modèles de l'utilisateur et le profil et je suis cet exemple:Django sérialiseur imbriqué Rest-cadre pour POST

classe UserSerializer (serializers.ModelSerializer): profil = ProfileSerializer ()

class Meta: 
    model = User 
    fields = ('username', 'email', 'profile') 

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 

Mais Im obtenir cette erreur:

{ 
    "profile": { 
     "user": [ 
      "This field is required." 
     ] 
    } 
} 

J'ai même essayé d'ajouter à des exceptions de validation, comme ceci:

def get_validation_exclusions(self): 
    exclusions = super(ProfileSerializer, 
         self).get_validation_exclusions() 
    return exclusions + ['user'] 

Je pense que je l'ai résolu en ajoutant ceci:

user = serializers.ModelField(model_field=Profile()._meta.get_field(
     'user'), required=False) 

Mais je ne suis pas encore sûr.

Répondre

0

Je pense que je l'ai résolu en ajoutant ceci:

user = serializers.ModelField(model_field=Profile()._meta.get_field(
     'user'), required=False) 

Mais je ne suis pas encore sûr, car il semble que je reçois des erreurs dans d'autres endroits.