Wie aktualisiere ich eine Instanz einer Django-Modell mit der Anfrage.POST wenn Sie POST ist ein verschachteltes array?
Ich habe ein Formular, übermittelt die folgenden Daten:
question[priority] = "3"
question[effort] = "5"
question[question] = "A question"
Dass Daten gesendet werden an die URL /Fragen/1/speichern wo 1
ist die question.id
. Was ich gerne tun würde ist, bekommen Frage #1 und update es auf der Grundlage der POST-Daten. Ich habe einige, dass es funktioniert, aber ich weiß nicht, wie, schieben Sie die POST in die Instanz.
question = get_object_or_404(Question, pk=id)
question <<< request.POST['question'] # This obviously doesn't work, but is what I'm trying to achieve.
question.save()
So, ist es eh zu schieben QueryDict in die model-Instanz und aktualisiert die Felder mit meinen Daten in das Formular?
Natürlich, ich könnte die Schleife über die POST und stellen Sie jeden Wert einzeln, aber das ist wohl zu Komplex für so eine schöne Sprache.
InformationsquelleAutor Mark Huot | 2010-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine ModelForm um dies zu erreichen. Definieren Sie zuerst die ModelForm:
Dann, aus Ihrer Sicht:
request.POST
ist smart genug, um zu ignorieren das andere Zeug dort nur die Aktualisierung derrequest.POST[question]
Teil? Speziell, ich will es nicht denkenuser[email]
hat nichts zu tun mit derQuestion
Objekt.Die ModelForm vergleicht die Namen der Felder-Modell und form-Felder, dann ziehen diese in. Also, wenn Ihr Frage Modell und Ihre web-Formular haben jeweils ein Feld namens " Frage, wird es zugeordnet. Wenn Ihr Formular hat ein Feld namens E-Mail, aber es gibt kein solches Feld in der Aufgabe Modell, es wird nicht zugewiesen werden. Finden Sie in der verlinkten Dokumentation für mehr Kontrolle über diese, wenn Sie es brauchen (zum Beispiel, können Sie ausschließen Feldnamen).
InformationsquelleAutor ars