Скажем имеется такое:
var data = new FormData(this);
data.append('csrfmiddlewaretoken', Cookies.get('csrftoken'));
data.append('author', meta.creator);
data.append('title', meta.bookTitle);
data.append('enctype', 'multipart/form-data');
$.ajax({
url: 'ajax/add/',
type: 'POST',
cache: false,
data: data,
processData: false,
contentType: false,
success: function (data) {
console.log('success')
},
error: function (data) {
console.log('error at books/ajax/add')
}
})
и вот такая вьюха
def add_book(request):
if request.method == 'POST':
print(request.FILES.get('epub'))
print(request.POST.get('title'))
print(request.POST.get('author'))
else:
return HttpResponseBadRequest()
при этом почему то он выводит такое:
None
War and Peace
Lev Nikolayevich Tolstoy
То есть в словаре request.FILES вовсе нет 'epub'
сама форма
<form method="POST" enctype="multipart/form-data" action="{% url 'books:add' %}">
<input type="file" accept="application/epub+zip" id="bookChooser" name="epub">
<button class="btn btn-primary">Submit</button>
</form>