【问题标题】:Rest API parameters are empty Serializer without modelRest API 参数为空 Serializer 没有模型
【发布时间】:2019-03-23 23:51:34
【问题描述】:

在我看来,我无法检索来自其余 API 的参数。当我打印数据时,我得到 {'in_text': ''}

序列化器.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'})

邮递员拨打电话的网址

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

输出是

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

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    您将 in_text 数据作为 url 查询参数 传递。 URL 查询参数位于request.query_params 属性内。所以,如果你想从query_params序列化一些东西,你必须把它传递给序列化器而不是request.data

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多