【问题标题】:Django - TypeError: put() missing 1 required positional argument: 'filename'Django - 类型错误:put() 缺少 1 个必需的位置参数:“文件名”
【发布时间】:2022-01-10 16:49:49
【问题描述】:

我正在尝试通过使用FileUploadParser 在 Django 中制作的 API 上传 pdf 文件或 pickle 文件。 但是,当使用 postman 使用 put 方法进行 API 调用时,即使使用正确的 HTTP 标头,我也会收到以下错误:

TypeError: put () missing 1 required positional argument: 'filename'

这是我的 POSTMAN 标头和正文的外观:

views.py

urls.py

【问题讨论】:

  • 你能分享一下这 10 个请求头是什么吗?

标签: python django django-rest-framework postman


【解决方案1】:

我修复了它,将class FileUploadView 更改为下面的代码,以便参数中不需要它的文件名:

class FileUploadView(APIView):
    parser_classes = (FileUploadParser,)

    def put(self, request):
        file = request.data.get('file', None)

        if file is not None:
            return Response(f'File: {file.name} successfully uploaded!', status=HTTP_200_OK)
        else:
            return Response(f'File not found!', status=HTTP_400_BAD_REQUEST)

【讨论】:

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