Ich bin relativ neu (1.8) django und haben, um dieses Problem zu lesen, die alle Punkte der save_formset Funktion als pro diesen Link zwingendenDjango Admin - Speichern inlines zwingende save_formset
zu Hatte hinzugefügt ein alter thread (Django admin - how to save inlines?) wollte aber als separaten thread aufziehen um bessere sicht zu bekommen und außerdem wurde das schon beantwortet.
Die folgende Funktion funktioniert, wo ich versuche, das Formular vor dem Speichern zu ändern, d. H. Die Prüffelder (erstellt/geändert) in USER und Kleinbuchstaben das Attribut 'enum_value_en' zu aktualisieren. Alle Werke, wenn der Benutzer nur 1 Eintrag tritt aber als Zugabe mehr aktualisiert es alle Einträge mit dem gleichen Wert (dh ‚enum_value_en‘ in der Datenbank.
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False) # gets instance from memory and add to it before saving it
for obj in formset.deleted_objects:
obj.delete()
for instance in instances:
for form in formset: # cleaned_data is only available on the form, so you have to iterate over formset
instance.modified_by = request.user
instance.created_by = request.user
instance.lowercase_enum_value_en = form.cleaned_data['enum_value_en'].lower()
instance.save()
formset.save_m2m()
Ex.
wenn Einträge sind ‚a '& 'b' sind die Kleinen Attribute auf 'b' auf beiden Datensätze.
PS. Wäre auch dankbar, wenn jemand könnte o Lassen Sie einige Kommentare zu ihren Vorschlägen kommen, damit ich jede Codezeile verstehen kann.
Am meisten geschätzt.
Vielen Dank Alasdair für die Lösung und Erklärung - es hat funktioniert. Ich habe übermäßig viel Zeit damit verbracht, das Problem zu lösen. Frustrierend in unserer Entwicklungsumgebung verwenden wir Supervisor, um Dienste neu zu starten, und haben versucht, einen interaktiven Debugger wie Werkzeug zu verwenden, können dies aber nicht. ** Kannst du mir etwas vorschlagen **. Noch einmal vielen Dank. –
Tut mir leid, ich habe keine Vorschläge über interaktive Debugger. – Alasdair
Danke trotzdem. –