Я пытаюсь отправить некоторые данные и несколько файлов на Django, используя AJAX, но проблема в объектах request.POST и request.FILES, а в request.body есть некоторые данные.
var uploadFiles = [];
var counter=0;
function delete_row(no)
{
var query = $("#row"+no+"")
var filename = query.find(".file-name").html();
if( confirm("Do you want to delete file '"+filename+"'?") ){
for(var i=0;i<uploadFiles.length;i++)
if( uploadFiles[i].name == filename ){
uploadFiles.splice(i,1);
break;
}
query.remove();
}
alert(temp)
}
$(document).ready(function(){
document.getElementById("duedate").flatpickr({
enableTime: true,
minDate: "today",
});
$('#addButton').click( function(){
$('#files').click();
});
$('#submit').click( function() {
var filesData = new FormData();
for(var i=0;i<uploadFiles.length;i++)
filesData.append('file', uploadFiles[i]);
$.ajax({
headers: {
'X-CSRFToken': '{{ csrf_token }}'
},
url: "{% url 'Teacher:AddAssignment' %}",
type: 'POST',
enctype: "multipart/form-data",
dataType: 'json',
data: {
'csrfmiddlewaretoken': '{{ csrf_token }}',
'subjectid': $('#subjectid').val(),
'title': $('#title').val(),
'description': $('#description').val(),
'duedate': document.getElementById('duedate').value,
'data': filesData,
},
contentType: false,
processData: false,
success: function(msg){
console.log(msg);
},
error: function(ThrowError){
console.log(ThrowError);
}
})
});
});
Кто-нибудь может сказать мне, какие изменения мне нужно внести, чтобы я мог получить доступ к данным с помощью объекта request.POST и request.FILES. В качестве альтернативы я также хотел бы знать, как сохранять файлы и получать доступ к данным с помощью request.body. Я новичок в Django, поэтому не имею об этом особого представления.
Также в этом конкретном вызове AJAX была одна странная вещь, если я не объявил заголовок с токеном CSRF и просто передал это в данных с использованием 'csrfmiddlewaretoken': '{{csrf_token}}' он дал мне Запрещено (токен CSRF отсутствует или неверен.) ошибка, что странно, поскольку мне не нужно было включить любой заголовок в мой вызов AJAX на других страницах, но на других страницах также не было задействованных файлов.
Я не использую Django -формы, а HTML формы, как мне нужно для настройки поведения страницы.