Я пытаюсь создать систему, которая позволяет загружать текст и файл через мою форму Django. Всякий раз, когда я пытаюсь опубликовать форму, я могу только представить часть сообщения в форме. Я слежу за this Ответ для справки, но у меня были проблемы. Во-первых, моя форма выглядит следующим образом:Загрузка файла через AJAX с формой Django
class MessageForm(forms.Form):
message = forms.CharField(widget=forms.Textarea, required=False)
file = forms.FileField(label="Attachment", required=False)
и это оказано HTML как это:
<form id="message-form" enctype="multipart/form-data">
{{form.message}}<br>
{{form.file}}
<div class="sectio4-bottom">
<div class="right-bottom">
<input id="send-button" type="submit" value="Send"/>
</div>
</div>
</form>
Текущая версия моей функции JS Я работаю с внешностью совсем так:
$('html').on('submit', '#message-form', function(e){
e.preventDefault();
var data = new FormData($('#message-form').get(0));
$.ajax({
url: '#',
type: 'POST',
data: {
'data': data,
'csrfmiddlewaretoken': $('.csrftoken').text()
}
});
return false;
})
, но часть меня интересует var data = new FormData($('#message-form').get(0));
. Я получил это из связанного вопроса, но когда он работает, он дает мне пустой объект. Я также пробовал передавать данные как 'data': $('#message-form').serialize()
, но когда он попадает на бэкэнд, и я смотрю на request.POST
, я вижу, что единственное, что включено в data
, - это сообщение, которое я отправляю. request.FILES
пуст.
Как я могу получить доступ к указанному файлу?
'неперехваченным TypeError: Не удается прочитать свойство '0' of undefined' – Nanor
@Nanor Обеспечьте свой fi le-field id - это файл. –