Вложенная концепция сериализатора для публикации и обновления - PullRequest
0 голосов
/ 13 сентября 2018

Я использую концепцию вложенных сериализаторов в python django. Для метода get () я использовал сериализатор, как показано ниже

class MusicianSerializer(serializers.ModelSerializer):
    album_musician = AlbumSerializer(many=True)

    class Meta:
        model = Musician
        fields = ('id', 'first_name', 'last_name', 'instrument', 'album_musician')

но как я могу написать вложенную концепцию сериализатора для концепции публикации и обновления без переопределения update и create.

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете использовать вложенный сериализатор с постом.Но вам нужно переопределить метод создания MusicianSerializer.

   class MusicianSerializer(serializers.ModelSerializer):
        album_musician = AlbumSerializer(many=True)

        class Meta:
            model = Musician
            fields = ('id', 'first_name', 'last_name', 'instrument', 'album_musician')

            def create(self, validated_data):
                album_musicians = validated_data.pop('album_musician')
                musician = Musician.objects.create(**validated_data)
                for album_musician  in album_musicians:
                    AlbumMusicain.objects.create(musician=musician, **album_musician)
                return musician

`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...