【问题标题】: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
【问题讨论】:
标签:
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)