【问题标题】:Nested serializer concept for post and update用于发布和更新的嵌套序列化程序概念
【发布时间】:2019-02-17 19:14:28
【问题描述】:

我在 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')

但是如何在不覆盖updatecreate 的情况下为发布和更新概念编写嵌套序列化程序概念。

【问题讨论】:

标签: python django-rest-framework


【解决方案1】:

您可以在 post 中使用嵌套序列化程序。但是你需要重写 MusicianSerializer 的 create 方法。

   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

`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-09
    • 2018-11-12
    • 1970-01-01
    • 2012-02-18
    • 2019-11-14
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    相关资源
    最近更新 更多