Ich habe ein Formular. Wenn ich das Formular ohne Ajax poste, funktioniert es gut. Aber wenn ich den Ajax benutze, habe ich einen Fehler wie diesen;django.utils.datastructures.MultiValueDictKeyError DJANGO
django.utils.datastructures.MultiValueDictKeyError:
Meine Codes sind darunter, ohne Ajax zu verwenden. Es klappt. HTML Form:
<form id="add_form" action="/adding/" method="post" enctype="multipart/form-data">
<input type="text" name="title">
<input type="file" name="picture">
<button type="submit" id="send_form" value="ok">Ok</button>
</form>
Meine views.py Codes sind:
if request.method == "POST":
title = request.POST.get('title')
pic = request.FILES['picture']
query = Images_Table(title=title, pic=pic)
query.save()
Meine Modellcodes sind:
class Images_Table(models.Model):
title = models.CharField(max_length=70, blank=True, null=True)
pic = models.FileField(upload_to='images_folder', blank=True, null=True)
Bis hier; alles ist normal, Codes funktionieren. Wenn ich Ajax benutze, habe ich einen Fehler. Mein HTML-Formular:
<form id="add_form" method="post" enctype="multipart/form-data">
<input type="text" name="title">
<input type="file" name="picture">
<button id="send_form" value="ok">Ok</button>
</form>
Meine Ajax-Codes sind:
$("#send_form").click(function(){
$.ajax({
url: '/adding/',
method:'post',
data: $("#add_form").serialize(),
headers: '{{ csrf_token }}',
success : function(){
alert('Success posted!');
}
});
});
Fehlercode ist unten;
django.utils.datastructures.MultiValueDictKeyError: "'picture'"
https://stackoverflow.com/a/30696103/3254405 – numbtongue
Meine Codes sind Werke, wenn ich Ajax nicht verwenden. Wenn ich Ajax verwende, erscheint dieses Problem. – Halim
Können Sie rohe Header und Parameter prüfen, die mit Fiddler gesendet wurden, da dies das Problem erklären könnte. – numbtongue