当嵌套序列化程序中有另一个模型(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
我的模型是:
- 期间
- 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
我的模型是:
- 期间
- 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