Django JQuery Ajax-Datei hochladen

Ich habe schon seit Stunden versucht, eine einfache Textdatei hochzuladen, aber ich scheine immer noch nicht in der Lage zu sein, sie zum Laufen zu bringen.

Ich erhalte immer wieder ungültige Formulare mit der Meldung, dass die Datei "file_source" fehlt.

Warum wird "file_source" nicht gepostet?

Ich habe es auch dazu gebracht, "file_source" zu senden, aber es sagt immer noch, dass es fehlt. Welche Art von Element sollte einem Django FileFiled zugewiesen werden?

Django-Form:

class FileUploadForm(forms.Form):
    file_source = forms.FileField()

Django-Vorlage (Renderformular):

<form action="/upload/" method="post" id="file-upload-form" enctype="multipart/form-data"> {% csrf_token %}
    {{ form }}
    <button type="submit" class="btn btn-primary" id='upload-btn'>Upload</button>
</form>

JQuery / Ajax-Upload:

function uploadFile() {
$.ajax({
    data: $(this).serialize(),
    type: $(this).attr('method'),
    url: $(this).attr('action')
});
return false;
}

$(function() {
     $('#file-upload-form').submit(uploadFile);
});

Django View Welche POST erhält:

def upload_view(request):
if request.is_ajax():
    form = FileUploadForm(request.POST)
    if form.is_valid():
        print 'valid form'
    else:
        print 'invalid form'
        print form.errors
return HttpResponseRedirect('/ingest/')

Antworten auf die Frage(1)

Ihre Antwort auf die Frage