"detail": "Ошибка разбора JSON - ожидается разделитель ',':
Я не знаю, что не так с json, пытаюсь передать пост запрос, но он выдает мне эту ошибку "
"."detail": "JSON parse error - Expecting ',' delimiter: line 3 column 34 (char 36)"
'
Вот что я передал в качестве запроса на почту
{
"song" :{"artiste": ["first_name": "Kizz", "last_name": "Daniel", "age": 30],
"title": "Buga",
"likes": 3},
"content": "chilled music"
}
Моя модель:
class Song(models.Model):
artiste = models.ForeignKey(Artiste, on_delete=models.CASCADE, null=True)
title =models.CharField(max_length=100)
date_released = models.DateTimeField(auto_now_add=True, null=True)
likes = models.IntegerField()
# artist_id = models.CharField(max_length=50, null=True)
def __str__(self):
return self.title
class Lyrics(models.Model):
song = models.ForeignKey(Song, on_delete=models.CASCADE)
content = models.TextField()
Сериализатор rest_framework:
class LyricsSerializers(serializers.ModelSerializer):
song = SongSerializers(many=True)
class Meta:
model = Lyrics
fields = ["song", "content"]
rest_framwork Api views:
class lyricsApiView(APIView):
def get(self, request):
lyrics = Lyrics.objects.all()
serializer = SongSerializers(lyrics, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
def post(self, request):
serializer = LyricsSerializers(data=request.data)
if serializer.is_valid():
artiste = serializer.validated_data.pop('artist')
artiste_create = Artiste.objects.create(**artiste)
song = serializer.validated_data.pop('song')
song_create = Song.objects.create(**serializer.validated_data, artiste=artiste_create)
lyrics_create = Lyrics.objects.create(**serializer.validated_data, song=song_create)
return Response(serializer.validated_data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Массив не может напрямую иметь объект ключ:значение
правильный json:
{
"song":{
"artiste":[
{
"first_name":"Kizz",
"last_name":"Daniel",
"age":30
}
],
"title":"Buga",
"likes":3
},
"content":"chilled music"
}