gpt4 book ai didi

django - 将实例添加到 django rest 框架中的 manytomany 字段

转载 作者:行者123 更新时间:2023-12-05 03:29:43 25 4
gpt4 key购买 nike

我有一个非常简单的问题,令我惊讶的是,这个网站之前没有人问过它。我有以下两个模型:

# models.py
class Film(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=150)
genre = models.ManyToManyField(Genre)

class Genre(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, unique=True)

我需要制作一个 API 来获取 2 个整数、电影 ID 和流派 ID,并将所述流派添加到电影中。看起来很简单,但我不知道我该怎么做。我真的需要帮助。

最佳答案

你可能想要这个:

class GenreSerializer(serializers.ModelSerializer):
class Meta:
model = Genre
fields = ('name', 'id')


class FilmSerializer(serializers.ModelSerializer):
genre = GenreSerializer(many=True, read_only=False)

class Meta:
model = Film
fields = ('name', 'id', 'genre')

def update(self, instance, validated_data):
genres_data = validated_data.pop('genre')
instance = super(FilmSerializer, self).update(instance, validated_data)

for genre_data in genres_data:
genre_qs = Genre.objects.filter(name__iexact=genre_data['name'])

if genre_qs.exists():
genre = genre_qs.first()
else:
genre = Genre.objects.create(**genre_data)

instance.genre.add(genre)

return instance

关于django - 将实例添加到 django rest 框架中的 manytomany 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70966790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com