【问题标题】:Unsupported media type \"application/x-www-form-urlencoded\" in request请求中不支持的媒体类型“application/x-www-form-urlencoded”
【发布时间】:2020-02-02 15:24:54
【问题描述】:

我将 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 文件中进行了配置。但我无法解决这个问题。任何帮助都会得到帮助。提前致谢

【问题讨论】:

  • 您可能希望将请求的Content-Type 参数传递给application/json.This might be similar
  • 如果我这样做,这个错误会变成"detail": "Unsupported media type \"application/json\" in request."

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


【解决方案1】:

您将MultiPartParser 指定为解析器,因此您需要进行适当的多部分查询。你可以通过selecting "form-data" option in Postman

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 2020-12-27
    • 2019-11-13
    • 2022-01-19
    • 2018-08-05
    • 2021-06-19
    • 2013-03-24
    相关资源
    最近更新 更多