Загрузка изображений с запросом POST в формате RAW JSON? DRF — Django Rest Framework

#json #django-rest-framework #request #httprequest

#json #django-rest-framework #запрос #httprequest

Вопрос:

Как мне загружать изображения с запросами raw json. Использование Django REST в качестве серверной части.

Пример :

 { 
   'name':'RK Villa',
   'address':'Addres goes here'
   'images':[{'name':'Front','image':'local/url'},{'name':'Front','image':'local/url'}]
}
  

Файл не прикрепляется. Я пытаюсь отправить это в Django rest framework.

Ответ №1:

Для загрузки изображения или файла вам необходимо использовать html <form></form> элемент. Затем вы обрабатываете этот файл с помощью JavaScript FormData . И, наконец, отправьте этот FormData объект на серверную часть через ajax. Следуйте приведенному ниже примеру.

 <form enctype="multipart/form-data">
    <input type="text" id="book_name">
    <input type="file" id="book_image">
    <button type="submit" id="submit_btn">Submit</button>
</form>

<script>
    $('#submit_btn').click(function(){
        var book_name = $('#book_name').val();
        var book_image = $('#book_image')[0].files[0];

        //I need to create a FormData object
        var fd = new FormData();

        fd.append('backend_book_name', book_name);
        fd.append('backend_book_image', book_image);

        //'backend_book_name' amp; 'backend_book_image' must be same to your drf model field name

        $.ajax({
            type:'post',
            url: 'http://localhost:8000/YOUR_URL',
            data: fd,
            processData: false,
            contentType: false,
            success: function(res){
                console.log(res);
            }
        });
    });  
</script>
  

Не забудьте установить атрибут ‘enctype = multipart /form-data’ в вашей HTML-форме.