У меня есть приложение реагирования, которое использует filepond.Filepond принимает файл и отправляет его на сервер, используя следующий настраиваемый заголовок:
const filepondServer = {
url: `${apiRoot}expenses/receipt_upload`,
process: {
headers: {
Authorization: `Token ${this.props.auth.token}`
}
}
};
Это относится к представлению django rest framework:
class ExpenseReceiptUploadView(APIView):
permission_classes = [permissions.IsAuthenticated, HasMetis]
parser_classes = (FileUploadParser,)
def post(self, request):
receipt = request.data["file"]
return Response(status=status.HTTP_201_CREATED)
(я знаю, что его нужно обновить)из-за ошибок и т. д., но это произойдет, как только это сработает)
Возвращает ошибку 400 без дополнительных подробностей.Если я удаляю строку receipt = request.data["file"]
, она возвращает 201, и сервер не жалуется.
Чтобы отладить это, я попытался напечатать request
- это работает нормально, но request.data
приводит к400, как и request.FILES
.
Ошибка очень краткая, она просто говорит:
2018-12-21 00:01:35,850 [middlewares 70] INFO: {"method": "POST", "path": "/api/v1/operations/expenses/receipt_upload", "user": "Alex", "user_id": 27192835, "device_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36", "request_post_body": {"filepond": "{}"}}
2018-12-21 00:01:35,851 [log 228] WARNING: Bad Request: /api/v1/operations/expenses/receipt_upload
[21/Dec/2018 00:01:35] "POST /api/v1/operations/expenses/receipt_upload HTTP/1.1" 400 0