i trying send a list in a POST requisition in Django Rest Framework. My objective like this: Nested Relationship, but i want a list.
What i need:
{
"id": 3435,
"titulo": "Livro x",
"editora": "Editora x",
"foto": "https://i.imgur.com/imagem.jpg",
"autores": ["Autor 1"]
}
What i am getting:
{
"autores": [
{
"non_field_errors": [
"Invalid data. Expected a dictionary, but got str."
]
}
]
}
My serializers.py file:
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
Where i going wrong?