Vielleicht ist es ein Problem der schlechten Serialisierung von meiner Seite, aber ich habe Probleme, meine Daten deserialisieren:Deserialize Query-String QueryDict (von AJAX gesendet)
Ich bin eine Modelform über AJAX Senden (per Post) zu eine Sicht. Es gibt keinen Fehler, aber das gespeicherte ModelForm erstellt ein leeres Element in meinem Modell.
ich den Debugger für request.POST
überprüft haben: Es ist der Schlüssel zu entsprechenden was von AJAX gesendet wurde, aber es ist kein QueryDict aber ein String der Form:
request.POST['keyinrequestpost'] = 'csrfmiddlewaretoken=pA.....zutQ&FirstField=BlaBlad&SecondField=BlaBla&ThirdField=BlaBla'
Offenbar tut dann:
MyModelForm(request.POST['keyinrequestpost'])
funktioniert nicht (das erstellte Element bekam nur leeres Feld), da es kein QueryDict ist? Ich dachte, die Konvertierung war automatisch ??
Wie kann ich dies deserialisieren, um ein von MyModelForm() verwendbares QueryDict zu erhalten?
meine AJAX:
$(document).ready(function(){
$('#newword_form').bind('submit', function(e){
var newword_form = $('#newword_form')
newword_form_serialized = newword_form.serialize();
$.ajax({url: '/create_newword/',
type: 'POST',
dataType: 'json',
data:{csrfmiddlewaretoken: '{{ csrf_token }}',
'newword': newword_form_serialized } ,
success: function(data){
...
und meine Ansicht:
if 'newword' in request.POST.keys(): # the form has been posted
f = MyModelForm(request.POST['newword'])
if f.is_valid():
word = f.save()
return render(request, ...
wunderbare Antwort! Vielen Dank für Ihre Zeit. Und der 'Fehler' Teil in Ajax half mir sehr bei weiteren Problemen. – ThePhi