Django получает изображение в экземпляр React Native FormData в виде диктанта
У меня есть приложение React Native, есть экран для загрузки логотипа logo (изображение). Когда логотип загружен, Django должен получить изображение, сохранить в пользовательской строке и создать файл в локальной папке assets (как обычно). Проблема в том, что я даже не знаю, правильно ли я отправляю данные из React Native, но Django REST API получает изображение в виде Python dict. Я следую инструкциям многих других людей, но все равно ничего не получается, вот как я загружаю логотип в экземпляр React Native FormData:
const fd = new FormData();
fd.append('logo', {
name: logo.fileName,
uri: logo.uri,
type: logo.type,
});
Переменная logo является экземпляром Asset из библиотеки react-native-image-picker.
А вот, как Django получает данные, с помощью pdb (отладчик Python):
Для лучшего просмотра:
{'_parts': [
['logo', {
'name': 'logo.png',
'uri': 'file:///data/user/0/com.micandidato/cache/rn_image_picker_lib_temp_9b3907e0-3f13-4ad5-9ca9-13f491473440.png',
'type': 'image/png'
}]
]}
Я почти уверен, что Django не сохранит этот объект как изображение. Метод запроса из React Native - PATCH (если уместно). Спасибо.
Для добавления данных (т.е. изображения) в экземпляр FormData мы должны передать аргументы следующим образом:
#at FrontEnd
const fd = new FormData();
fd.append('image',imageFileOrBlob,FileName*);
//rest of the code
FileName - необязательный аргумент.
ImageFileOrBlob в вашем случае должен быть передан как
.yourInputField.target.files[0]
#at Django backEnd
def myView(request):
logo = request.FILES.get('image')
#rest of the code
