Ich finde wirklich die Django Formsets verwirrend.django formsets Verwirrung (Validierung, erforderlich, empty_permitted)
Ich bin vor allem Probleme mit den folgenden Konzepten, die ich nicht wirklich verstehen:
Die formset klug genug ist extra Formen zu ignorieren, die nicht verändert wurden.
Über den Code sprechen, der versucht, zu intelligent zu sein. Was soll das genau heißen? Warum sollte ich das überhaupt wollen?
Dann versucht, das bisherige Konzept zu verstehen, sehe ich Menschen
Formen in den Formularsätzen erforderlich machen.
Dies ist ein anderes Konzept, das ich nicht verstehen kann. Was ist ein erforderliches Formular in einem Formularsatz und warum muss ich ein Formular erforderlich machen? Wieder etwas nicht dokumentiert.
Dann kommen zu meinem eigentlichen Problem, das andere Leute zu haben scheinen, aber sie können nicht wirklich erklären, warum sie es so repariert haben, wie sie es behoben haben.
Warum im folgenden Beispiel ist das Formset gültig, während ein einzelnes Formular mit der gleichen Eingabe ungültig ist?
import django
class MyForm(django.forms.Form):
start = django.forms.DateField()
end = django.forms.DateField()
data = {
'form-TOTAL_FORMS': '1',
'form-MAX_NUM_FORMS': '',
'form-INITIAL_FORMS': '0',
'form-0-start': '',
'form-0-end': '',
}
MyFormSet = formset_factory(MyForm)
formset = MyFormSet(data)
#fee_forms[0].empty_permitted = False
print formset.is_valid()
# --- returns True ---
print formset.errors
f = MyForm({'start': '', 'end': ''})
print f.is_valid()
# --- returns False ---
print f.errors
auf False empty_permitted Einstellung scheint die erwarteten Ergebnisse für mich zu geben (was für die formset ungültig ist aufgrund fehlender ‚Start‘ und ‚Ende‘). Dies ist ein weiteres undokumentiertes Feature ...
Würde jemand Zeit für die Erklärung haben?
Danke