Я пытаюсь написать обработчик API Django Rest Framework, который может получать файл, а также полезную нагрузку JSON. Я установил MultiPartParser как обработчик обработчика.
Однако, похоже, я не могу обойти оба. Если я отправлю полезную нагрузку с файлом в виде запроса на несколько частей, полезная нагрузка JSON доступна в искаженном виде в файле request.data(первая текстовая часть до первого двоеточия в качестве ключа, остальное - данные). Я могу отправить параметры в стандартных параметрах формы просто отлично, но остальная часть моего API принимает JSON-полезные нагрузки, и я хотел быть последовательным. Невозможно прочитать запрос .body, поскольку он поднимает *** RawPostDataException: You cannot access body after reading from request data stream
Например, файл и эта полезная нагрузка в теле запроса: {"title":"Document Title", "description":"Doc Description"}
Становится: <QueryDict: {u'fileUpload': [<InMemoryUploadedFile: 20150504_115355.jpg (image/jpeg)>, <InMemoryUploadedFile: Front end lead.doc (application/msword)>], u'{%22title%22': [u'"Document Title", "description":"Doc Description"}']}>
Есть ли способ сделать это? Могу ли я есть торт, держать его и не набирать вес?
Изменить: Было высказано предположение, что это может быть копия загружаемого изображения Django REST Framework: "Представленные данные не были файлом" . Это не. Загрузка и запрос выполняются в multipart, и имейте в виду, что файл и загрузка его в порядке. Я могу даже заполнить запрос стандартными переменными формы. Но я хочу посмотреть, могу ли я получить полезную нагрузку JSON там.