2016-09-23 2 views
1

Я пытаюсь передать данные POST в свой API. У меня есть модель с image поле, где:«Опубликовать данные изображения с помощью POSTMAN»

image = models.ImageField() 

У меня есть изображение на моей локальной машине, которую я пытаюсь отправить. Правильно ли я отправляю его?

{ 
    "id": "3", 
    "uid":"273a0d69", 
    "uuid": "90", 
    "image": "@/home/user/Downloads/tt.jpeg" 
} 

ответ

10

Это не то, как вы отправляете файл на почтальоне. То, что вы сделали, это отправить строку, которая является образом вашего изображения, и ничего больше.

Что вы должны сделать, так это;

  1. После установки метода запроса на POST нажмите на вкладку «тело».
  2. Выберите данные формы. На первой строке вы увидите текстовые поля с именем key и value. Напишите «образ» на ключ. Вы увидите тип значения, который по умолчанию задан как «текст». Сделайте это Файл и загрузите файл.
  3. Затем выберите «raw» и вставьте файл json. Также рядом с бинарным выбором вы увидите «Текст». Сделайте это JSON.

form-data section

raw section

Вы готовы пойти.

На ваш взгляд Django,

from rest_framework.views import APIView 
from rest_framework.parsers import MultiPartParser 
from rest_framework.decorators import parser_classes 

@parser_classes((MultiPartParser,)) 
class UploadFileAndJson(APIView): 

    def post(self, request, format=None): 
     thumbnail = request.FILES["file"] 
     info = json.loads(request.data['info']) 
     ... 
     return HttpResponse() 
+0

Привет, есть способ делать вложенные изображения, ie {model: {image: file}} – Babbz77

+0

Я получаю '' деталь ":" Неподдерживаемый тип носителя \ "приложение/json \" в запросе. "' С код статуса HTTP 415. Есть идеи? – MarAja

+0

Вы проверяете это на почтальоне? –

1

Принятая ответ работает, если вы установите JSON в качестве пары ключ/значение в form-data панели (См изображение ниже) и

enter image description here

Тем не менее, мне интересно, если это очень чистый способ разработки API. Если вам необходимо загрузить как изображение, так и JSON в один звонок, возможно, это нормально, но если вы можете разделить маршруты (один для загрузки изображений, другой для тела JSON с правильным заголовком содержимого), кажется, лучше ,

Смежные вопросы