Как добавить image_form к form в Django?
форма - form.serialize ()
image_form — изображение
$('#id_submit').click(function(e) {
e.preventDefault();
var form = $('form').serialize();
image_form = $("#id_image")[0].files[0]
var data = {
form: form,
}
$.ajax({
headers: {'X-CSRFToken': '{{ csrf_token }}' },
type: 'POST',
data: data,
})
})
Однако теперь, когда вы отредактировали его, чтобы показать, что image_form является ссылкой на файл, это не сработает.
Да как быть в таком случае?
SerializeArray, может быть?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете попробовать:
$('#id_submit').click(function(e) {
e.preventDefault();
var form = $('form').serialize();
var image_form = $("#id_image").prop("files")[0];
var data = new FormData(); // Creating object of FormData class
data.append("form", form);
data.append("image_form", image_form);
$.ajax({
headers: {'X-CSRFToken': '{{ csrf_token }}' },
type: 'POST',
data: data,
//Options to tell JQuery not to process data or worry about content-type
contentType: false, // The content type used when sending data to the server. Default is: "application/x-www-form-urlencoded"
processData: false, // To send DOMDocument or non processed data file it is set to false (i.e. data should not be in the form of string)
cache: false, // To unable request pages to be cached
success: function (res){}
});
});
serialize()вернет строку запроса (например, имя=я&возраст=99). Поэтому, если вы хотите добавить еще одну пару ключ-значение, вам просто нужно добавить&image_form=123к этой строке. С появлением, если форма пуста, вы не стали бы включать ведущий&