У меня возникла проблема при сохранении картинки в Django из приложения для Android. Я искал и, наконец, решил проблему. Я разделяю это так, чтобы это могло помочь. См. Ответ ниже.Сохранить изображение в Django из Android-приложения
1
A
ответ
1
Вам придется выполнять действия в соответствии с вашими собственными спецификациями. Я просто покажу вам, как общий пример
я использовал okHttp в моем андроид приложение для передачи данных по сети (в том числе ПОС)
Android AsyncTask Код (doInBackground метод)
RequestBody formBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("filename","filename",RequestBody.create(MediaType.parse("multipart/form-data"), new File(file.getPath())))
//.addFormDataPart("other_field", "other_field_value")
.build();
Request request = new Request.Builder()
.header("Authorization", "Token " + myToken)
.url(myUrl).post(formBody).build();
Response response = new OkHttpClient().newCall(request).execute();
return response.body().string();
Мой взгляд .py код
def rechargeapplication(request):
user=#get your own object
uploadpic = request.FILES['filename']
user.picture.save("image.jpg",uploadpic)
user.save()
return JsonResponse({'result':'Success'})
Как я создал Imagefield в models.py
picture=models.ImageField(upload_to="photos" , null=True, blank=True)
если вы используете ImageField, то вам придется установить «Подушка» Кроме того, убедитесь, что вы указываете MEDIA_ROOT & MEDIA_URL в settings.py .... Я покажу вам, как я сделал это
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
и в конце urls.py добавить это (как я был в режиме отладки, поэтому моя реализация ...)
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
это вроде вас, чтобы добавить свое решение, спасибо. Однако вышеизложенное не является вопросом в соответствии с рекомендациями переполнения стека. Могли бы вы переписать выше, чтобы задать вопрос? Это довольно сложно сделать, так как он должен содержать проблему, которая была у вас до обнаружения решения. Однако, пожалуйста, попробуйте, поэтому мы можем избежать его удержания. – halfer