【发布时间】:2022-02-10 03:52:41
【问题描述】:
我与 Book 模型和 Genres 有多对多关系,当我尝试获取数据但尝试发布与输出类似但我不断收到此错误时,以下代码工作正常
The `.create()` method does not support writable nested fields by default.
Write an explicit `.create()` method for serializer `pages.serializes.BookSerial`, or set `read_only=True` on nested serializer fields.
models.py
class Book(models.Model):
title = models.CharField(max_length=100)
description = models.TextField(max_length=4000)
alternative_name = models.CharField(max_length=100)
author = models.CharField(max_length=100)
blacklist = models.BooleanField(default=False)
class Genres(models.Model):
name = models.CharField(max_length=200)
book = models.ManyToManyField(Book,related_name="bookgenres")
def __str__(self):
return self.name
serialazer.py
class GenreSerial(serializers.ModelSerializer):
class Meta:
model = Genres
fields = ['name']
class BookSerial(serializers.ModelSerializer):
genre = GenreSerial(source="bookgenres",many=True)
class Meta:
model = Book
fields = '__all__'
views.py
class AllSerialed(generics.ListCreateAPIView):
queryset = Book.objects.filter(blacklist=False).order_by("-date")
serializer_class = BookSerial
【问题讨论】:
标签: python django-rest-framework