Django Rest框架:如何创建和更新多对多字段? 我正在寻找一种方法来序列化多对多关系对象的模型字段。 模型

Django Rest框架:如何创建和更新多对多字段? 我正在寻找一种方法来序列化多对多关系对象的模型字段。 模型,django,django-rest-framework,Django,Django Rest Framework,序列化程序- class BookSerializer(serializers.ModelSerializer): author = serializers.StringRelatedField(read_only=True) slug = serializers.SlugField(read_only=True) class Meta: model = Book fields = '__all__' 观点- class BookView

序列化程序-

class BookSerializer(serializers.ModelSerializer):
    author = serializers.StringRelatedField(read_only=True)
    slug = serializers.SlugField(read_only=True)
    class Meta:
        model = Book
        fields = '__all__'
观点-

class BookViewSet(viewsets.ModelViewSet):

    queryset = Book.objects.all()
    lookup_field = 'slug'
    serializer_class = BookSerializer

    def perform_create(self, serializer):
        return serializer.save(owner=self.request.user)
我想将标签名添加到详细视图和书籍列表视图的响应中。如果我尝试为标记模型创建序列化程序并在图书序列化程序中使用它,我将无法创建或更新图书

我该怎么办?
另外,是否有办法只更新标记字段?

这是否回答了您的问题@MahmoudAdel上述问题并不能消除疑问。上面的代码返回与书籍关联的标记的PK列表。如果我使用标记序列化程序来填充BookSerializer中的标记列表,我应该在Book Create API的API请求主体中添加什么来将标记与书籍关联起来。以及如何创建更新API?我应该替换更新请求中发送的所有标记,还是应该将新标记添加到书本并创建删除标记视图?在更新中,您应该发送请求中标记的id,然后在
Update()
处,您应该获得具有此id的
Tag
对象,并将它们添加到创建中的M2M关系中,您将传递
tag
的数据,并使用您提到的
TagSerializer
来验证和创建标记对象,并将它们链接到
Book
查看文档,正如我在第一篇评论中发布的答案所述,
class BookViewSet(viewsets.ModelViewSet):

    queryset = Book.objects.all()
    lookup_field = 'slug'
    serializer_class = BookSerializer

    def perform_create(self, serializer):
        return serializer.save(owner=self.request.user)