Как отправить данные на бэкэнд (Django) из React [список, числа, файлы] - PullRequest
0 голосов
/ 03 августа 2020

Мой вопрос относится к Как мне добавить список в FormData?

Однако я считаю, что на него нет хорошего ответа, поэтому я создаю другой вопрос и уточняю его.

Я намерен отправить данные на Django бэкэнд через ax ios из React. Данные включают изображения, значения первичного ключа и список значений первичного ключа.

Я понимаю, что FormData не может передавать целые числа или список целых чисел, а JSON не может передавать файл. Каков наилучший способ достичь того и другого?

Если я использую JSON, изображение не передается, и я получаю сообщение об ошибке

["The submitted data was not a file. Check the encoding type on the form."]

Если я использую FormData, поля ForeignKey содержат целые числа или список целых чисел (поле Many To Many) не передается, и я получаю сообщение об ошибке

["Incorrect type. Expected pk value, received str."]

Вопросы

Каков наилучший способ отправить все данные в бэкэнд?

1.) Следует ли мне вносить изменения в бэкэнд, чтобы он мог анализировать строки, это достижимо, но не кажется элегантным, поскольку бэкэнд должен быть обобщен для любого клиентского приложения и это похоже на конкретный случай проблемы?

2.) Есть ли способ отправить данные через ax ios частично как FormData и частично как JSON

3.) Будет ли отправка файл, преобразованный как bas64String в формате JSON вместе с данными, исправить эту проблему?

Какой самый эффективный и элегантный способ исправить это?

...