Ich verwende die Funktion inlineformset_factory von Django.
a = get_object_or_404(ModelA, pk=id)
FormSet = inlineformset_factory(ModelA, ModelB)
if request.method == 'POST':
metaform = FormSet (instance=a, data=request.POST)
if metaform.is_valid():
f = metaform.save(commit=False)
for instance in f:
instance.updated_by = request.user
instance.save()
else:
metaform = FormSet(instance=a)
return render_to_response('nodes/form.html', {'form':metaform})
Wenn ich die Daten ändere, ist alles in Ordnung und alle Daten werden aktualisiert. Wenn ich jedoch keine der Daten ändere, werden die Daten nicht aktualisiert, d. h. nur die geänderten Einträge werden in der for-Schleife gespeichert. Ich denke, das ist sinnvoll, da es keinen Sinn macht, Daten zu speichern, wenn sie sich nicht geändert haben. Ich muss jedoch jedes Objekt im Formular durchlaufen und speichern, unabhängig davon, ob es Änderungen aufweist oder nicht.
Meine Frage ist also, wie ich dies überschreiben, so dass es geht durch und speichert jeden Datensatz, ob es irgendwelche Änderungen oder nicht hat?
Ich hoffe, das macht Sinn
Gracias