MultiValueDictKeyError |Ошибка при создании и обновлении при изменении значения перед возвратом к ответу в Django Rest Framework - PullRequest
0 голосов
/ 03 июля 2019

У меня есть модель «Фильм», состоящая из названия фильма.Я хочу вернуть измененное значение пользователю, чем база данных.Например,Если название фильма в базе данных Godfather, я хочу вернуть его к You must watch Godfather.

Я пытался использовать SerializerMethodField, что дает мне правильный вывод, но когда я пытаюсь создать илиОбновление нового поля фильма дает следующее сообщение об ошибке.

MultiValueDictKeyError

Модели

# models.py
from django.db import models


class Movie(models.Model):
    name = models.CharField(max_length=255, blank=False, )
    date_created = models.DateTimeField(auto_now_add=True)
    date_modified = models.DateField(auto_now=True)

Сериализаторы

# serializers.py
from rest_framework import serializers
from .models import Movie


class MovieSerializer(serializers.ModelSerializer):

    name = serializers.SerializerMethodField()

    def get_name(self, obj):
        return getSomeString(obj.name)

    class Meta:
        model = Movie
        fields = ('id', 'name', 'date_created', 'date_modified')
        read_only_fields = ('date_created', 'date_modified')


def getSomeString(string):
    return "You must wqatch " + string

Просмотры

# views.py
from django.shortcuts import get_object_or_404
from rest_framework import generics

from .models import Movie
from .serializers import MovieSerializer


class CreateView(generics.ListCreateAPIView):
    queryset = Movie.objects.all()
    serializer_class = MovieSerializer


class DetailView(generics.RetrieveUpdateDestroyAPIView):
    queryset = Movie.objects.all()
    serializer_class = MovieSerializer

    def get_object(self):
        return get_object_or_404(
            self.get_queryset(),
            pk=self.kwargs.get('pk')
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...