请求中不支持的媒体类型\“ application / x-www-form-urlencoded \”

时间:2019-10-04 09:45:31

标签: django python-3.x django-rest-framework postman

我正在将ViewSets用于Profile模型,但是如果我在Postman中发送请求,则会出现以下错误。

Unsupported media type \"application/x-www-form-urlencoded\" in request

但是我不知道我在做什么错。

class ProfileView(viewsets.ModelViewSet):
    queryset = Profile.objects.all()
    serializer_class = ProfileSerializer
    parser_classes = (MultiPartParser,)
    permission_classes = (IsOwnerOrAdmin,)

    def get_queryset(self):
        return super(ProfileView, self).get_queryset().filter(user=self.request.user)

    def get_object(self):
        qs = Profile.objects.filter(user=self.request.user).first()
        return qs

    def put(self, request):
        file = request.data['file']
        return Response(status=204)

我也在settings.py文件中进行了配置。但我无法解决。任何帮助都将适用。预先感谢

1 个答案:

答案 0 :(得分:1)

您将MultiPartParser指定为解析器,因此您需要执行适当的多部分查询。您可以通过selecting "form-data" option in Postman来做到这一点:

  

multipart/form-data是Web表单用于传输数据的默认编码。这模拟在网站上填写表单并提交。表单数据编辑器使您可以设置键值对(使用数据编辑器来处理数据。)还可以为多部分表单请求的每个部分分别指定内容类型。您也可以将文件附加到密钥。