Django KeyError и MultiValueDictKeyError при попытке POST

Я пытаюсь сделать POST запрос к Django через Vue JS, этот POST запрос - обзор города, Когда я пытаюсь выполнить POST через Vue JS, я не получаю ответа, поэтому я попробовал использовать Django API напрямую и каждый раз получаю одну и ту же ошибку MultiValueDictKeyError. Я пытаюсь отправить запрос так, чтобы каждый отзыв был связан с определенным городом, поэтому мне нужно прикрепить к нему ID города, чтобы я мог перейти к этому городу через API. Вот мой views.py файл:

from django.shortcuts import render

from rest_framework.views import APIView
from rest_framework.response import Response

from .models import City, Review
from .serializers import CitySerializer, ReviewSerializer
from rest_framework.parsers import FormParser, MultiPartParser, JSONParser
from django.http import HttpResponse


class LatestCityList(APIView):
    parser_classes = (FormParser, MultiPartParser)
    def get(self, request, format=None):
        cities = City.objects.all()
        serializer = CitySerializer(cities, many=True)
        return Response(serializer.data)

    def post(self, request, format=None):
        Name = request.data['Name']
        Picture = request.data['Picture']
        Description = request.data['Description']
        slug = Name.lower().replace(' ', '_')
        City.objects.create(Name=Name, Picture=Picture, Description=Description, slug=slug)
        return HttpResponse({'message': 'City created successfully'}, status=201)


class CityDetail(APIView):
    parser_classes = (FormParser, MultiPartParser)
    def get(self, request, slug, format=None):
        city = City.objects.get(slug=slug)
        serializer = CitySerializer(city)
        return Response(serializer.data)


class CityReviewList(APIView):
    parser_classes = (FormParser, MultiPartParser)
    def get(self, request, slug, format=None):
        city = City.objects.get(slug=slug)
        reviews = Review.objects.filter(City=city)
        serializer = ReviewSerializer(reviews, many=True)
        return Response(serializer.data)

    def post(self, request, slug, format=None):
        city = City.objects.get(slug=slug)
        id = City.objects.get(slug=slug).id
        Review = request.data['Review']
        TravelerName = request.data['TravelerName']
        Picture = request.data['Picture']
        slug = TravelerName.lower().replace(' ', '_')
        Review.objects.create(City=city, Review=Review, TravelerName=TravelerName, Picture=Picture, slug=slug)
        return HttpResponse({'message': 'Review created successfully'}, status=201)

Вы видите, что у меня есть POST для LastestCityList, и он отлично работает как из API, так и из Vue JS. Я попытался применить ту же концепцию для Review и не смог разобраться с этим, я знаю, что проблема связана с City, но я перепробовал все, чтобы отладить это, но все равно каждый раз получаю ошибку.

Это мой serializers.py файл:

from rest_framework import serializers

from .models import City, Review

class CitySerializer(serializers.ModelSerializer):
    class Meta:
        model = City
        fields = ('id', 'Name', 'Picture', 'Description',
        'get_absolute_url', 'get_image', 'slug')

class ReviewSerializer(serializers.ModelSerializer):
    class Meta:
        model = Review
        fields = ('id', 'City', 'Review', 'TravelerName', 'slug',
        'Picture', 'get_absolute_url', 'get_image')
Вернуться на верх