我尝试在 Django Rest Framework 的 POST 申请中发送列表。我的目标是这样的:嵌套关系,但我想要一个列表。
我需要的:
{
"id": 3435,
"titulo": "Livro x",
"editora": "Editora x",
"foto": "https://i.imgur.com/imagem.jpg",
"autores": ["Autor 1"]
}
我得到了什么:
{
"autores": [
{
"non_field_errors": [
"Invalid data. Expected a dictionary, but got str."
]
}
]
}
我的 serializers.py 文件:
from rest_framework.serializers import ModelSerializer
from .models import Autor, Livro
class AutorSerializer(ModelSerializer):
class Meta:
model = Autor
fields = ('nome')
class LivroSerializer(ModelSerializer):
autores = AutorSerializer(many=True)
class Meta:
model = Livro
fields = ('id', 'titulo', 'editora', 'autores')
def create_autores(self, autores, livro):
for autor in autores:
obj = Autor.objects.create(**autor)
livro.autores.add(obj)
def create(self, validated_data, **kwargs):
autores = validated_data.pop('autores')
livro = Livro.objects.create(**validated_data)
self.create_autores(autores, livro)
return livro
我哪里错了?