当嵌套序列化程序中有另一个模型(manytomany)时,我如何在 django 模型上 post,我想同时创建两者

How do I post on a django model when it has another model (manytomany ) inside nested serializers, I want at the same time to create both

我的模型是:

  1. 期间
  2. ClassStudentSubject

Period与ClassStudentSubject存在多对多关系

当我 POST 一个句点时,我不想选择我使用的现有 ClassStudentSubject 对象,我想创建一个与句点一起的新对象。

ClassStudentSubject - 我创建这个模型是为了将一些时期的数据结构化为一个对象

这可以通过覆盖序列化程序的创建方法来实现。您必须先创建“ClassStudentSubject”对象,然后在“create”方法中创建 Period 对象时使用该对象。 以下是符合您要求的文档中的以下示例。

class TrackSerializer(serializers.ModelSerializer):
    class Meta:
        model = Track
        fields = ['order', 'title', 'duration']

class AlbumSerializer(serializers.ModelSerializer):
    tracks = TrackSerializer(many=True)

    class Meta:
        model = Album
        fields = ['album_name', 'artist', 'tracks']

    def create(self, validated_data):
        tracks_data = validated_data.pop('tracks')
        album = Album.objects.create(**validated_data)
        for track_data in tracks_data:
            Track.objects.create(album=album, **track_data)
        return album