Параметры остальных API пустые Сериализатор без модели - PullRequest
2 голосов
/ 24 марта 2019

На мой взгляд, я не могу получить параметр, поступающий в остальные API. когда я печатаю данные, я получаю {'in_text': ''}

serializers.py

class StandardizerSerializer(serializers.Serializer):
    in_text = serializers.CharField(max_length=2000,required=False)

views.py

class standardiz_text(APIView):
    def post(self, request):
        #serializer =  StandardizerSerializer(context={'request': request})
        serializer =  StandardizerSerializer(data=request.data)
        print(repr(serializer))
        if serializer.is_valid(raise_exception=True):
            print(serializer.data)
        else:
            print("----------not valid")
        return Response({'standardizer_text': ' test data'})

URL для звонка от почтальона

http://127.0.0.1:8000/standardiz/text/?in_text=tesinput

выход -

StandardizerSerializer(data={}):
    in_text = CharField(max_length=2000, required=False)
{}

1 Ответ

2 голосов
/ 24 марта 2019

Вы передаете данные in_text как параметр запроса url . Параметры URL-запроса находятся внутри атрибута request.query_params. Итак, если вы хотите сериализовать что-то из query_params, вам нужно передать его в сериализатор вместо request.data

#code
class standardiz_text(APIView):
    def post(self, request):
        serializer = StandardizerSerializer(<b>data=request.query_params</b>) <b># change is here &lt&lt&lt&lt&lt</b>
        if serializer.is_valid(raise_exception=True):
            print(serializer.data)
        else:
            print("----------not valid")
        return Response({'standardizer_text': ' test data'})
...