DRF Multiparser接收表单数据和文件

时间:2019-11-06 14:27:39

标签: django-rest-framework

我正在尝试创建一个同时接收表单数据和文件的视图。以下是我的看法:

class TestFileViewSet(APIView):

    parser_classes = (MultiPartParser, FormParser,)

    def post(self, request, format=None):
        print(request.data)
        return Response({'received data': request.data})

以下是邮递员请求:

curl -X POST \
  http://localhost:80/TestFileViewSet/ \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -H 'postman-token: 41c99615-3bcb-f291-ba3c-7a606850027a' \
  -F code=widget \
  -F name=Widget \
  -F 'description=Widget Description' \
  -F file=@test.js

当我打印请求数据时,我得到:

<QueryDict: {'code': ['widget\r\n------WebKitFormBoundaryHQpnv1ZnGY52rZuR\r\nContent-Disposition: form-data; name="name"\r\n\r\nWidget\r\n------WebKitFormBoundaryHQpnv1ZnGY52rZuR\r\nContent-Disposition: form-data; name="description"\r\n\r\nWidget Description\r\n------WebKitFormBoundaryHQpnv1ZnGY52rZuR\r\nContent-Disposition: form-data; name="file"; filename="test.js"\r\nContent-Type: application/javascript\r\n\r\ntesttesttest\n\r\n------WebKitFormBoundaryHQpnv1ZnGY52rZuR--\r\n']}>

为什么我在发送字段时没有将字段作为字典

0 个答案:

没有答案