Для этого вам не нужно ничего менять в бэкэнде, кроме фрагмента JavaScript, чтобы инициировать отправку формы при изменении события кнопки поля файла.Предполагая, что у вашего поля входного файла есть id = "id_file" и форма id = "image-upload-form".
Если ваш html выглядит так.
<form id="image-upload-form" method="POST" role="form" enctype="multipart/form-data">
{% csrf_token %}
<input name="id_Datas" type="file" id="id_datas">
<button type="submit" class="btn btn-primary" name="btnform1">Upload</button>
</form>
, тогда js будет выглядеть так.
$("#id_datas").on("change", function(event){
$("#image-upload-form").submit();
});
Объяснение:
Посмотрите, когда у вас есть форма в вашем html, роль формы состоит в том, чтобы собирать в нее данные входных элементов, оборачивать эти данные и использовать необходимый метод.определено в форме, т.е. "GET", "POST" и т. д. для определенного действия, которое является URL-адресом типа "/ upload_file"
Теперь по умолчанию форма будет делать это только тогда, когда пользователь нажимает на элемент кнопки с типом submitсодержится в форме.Поскольку вам не нужно такое поведение, когда пользователю придется нажимать, вы также можете сделать это с помощью javascript, если вы указали HTML, как указано выше, чтобы проверить поведение, вы можете выбрать файл в опции загрузки файла и перейти кконсоль разработчика и запустите эту команду
$("#image-upload-form").submit();
Вы увидите, что такое же поведение происходит и при нажатии на кнопку.Поэтому мы делаем это для события change
, чтобы автоматически отправлять форму, когда пользователь выбирает файл.
Надеюсь, это поможет, если нет, то дайте мне знать, какая часть.