Для загрузки изображения или файла вам необходимо использовать элемент 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' & '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-форме.