django остальные рамки assertionError - PullRequest
0 голосов
/ 18 января 2020

AssertionError: Когда сериализатору передается аргумент ключевого слова data, вы должны вызвать .is_valid(), прежде чем пытаться получить доступ к сериализованному представлению .data. Сначала вы должны либо позвонить .is_valid(), либо получить доступ к .initial_data.

views.py:

from rest_framework.views import APIView
from rest_framework.response import Response
from drfw.serializers import NameSerializers
class restapiView(APIView):
    def get(self,request,*args,**kwargs):
        alphabets=['A','B','C','D','E']
        return Response({'msg':'latters','alphabets':alphabets})
    def post(self,request,*args,**kwargs):
        serializer=NameSerializers(data=request.data)
        if serializer.is_valid:
            name=serializer.data.get('name')
            msg='Hello{}'.format(name)
            return Response({'msg':msg})
        else:
            return Response(serializer.errors,status=400)

serializers.py:

from rest_framework import serializers
class NameSerializers(serializers.Serializer):
    name=serializers.CharField(max_length=30)

1 Ответ

1 голос
/ 18 января 2020

is_valid - это метод. Поэтому вам нужно позвонить.

Заменить if serializer.is_valid: на if serializer.is_valid():

...