2 Stimmen

Model Formset speichern mit form.save(commit=False) und mehreren Feldnamen

Ich verstehe, dass Django nicht lassen Sie eine unvollständige Felder in einem einzigen Formular aus einem Modell erstellt zu speichern, wenn Sie dies tun:

tmpform = form.save(commit=False)
tmpform.foo = form.cleaned_data['foo']
tmpform.save()

Ich möchte also diese Art von Dingen mit Formularen in einem Formularsatz tun - ich versuche, durch alle Felder für jedes Formular im Formularsatz zu iterieren. Aber das Problem ist, dass ich nicht genau weiß, wie man durch alle Felder jedes Formulars im Formularsatz iterieren kann. Ich habe dies versucht:

for form in formset.forms:
  for name, field in form.fields.items():
    tmpform = form.save(commit=False)
    tmpform.field[name] = form.cleaned_data[name] # doesn't work, I get an error
    tmpform.save()

Aber ich erhalte nur die Fehlermeldung ERROR:

'FooForm' object has no attribute 'field'.

Meine Frage ist: Wie verwende ich form.save(commit=False) richtig gegeben, dass ich mehrere Felder in einem Formular mit unterschiedlichen Feldnamen haben?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X