Naprawdę znajduję mylące formidy django.django formsets confusion (sprawdzanie poprawności, wymagane, empty_permitted)
jestem szczególnie problemy z następujących pojęć, które tak naprawdę nie rozumieją:
formset jest wystarczająco inteligentny, aby ignorować niektóre formy, które nie zostały zmieniły.
Mówienie o kodzie, który próbuje być zbyt sprytny. Co to dokładnie znaczy? Dlaczego miałbym tego chcieć?
Potem, próbując zrozumieć poprzednią koncepcję, widzę ludzi
tworzenia formularzy do formsets wymagane.
To kolejna koncepcja, której nie mogę się pozbyć. Co to jest wymagana forma w zestawie i dlaczego muszę utworzyć wymagany formularz? Znowu coś, czego nie udokumentowano.
Potem przychodzę do mojego rzeczywistego problemu, który inni ludzie zdają się mieć, ale nie potrafią wyjaśnić, dlaczego naprawili go tak, jak go naprawili.
Dlaczego w poniższym przykładzie zestaw jest ważny, a indywidualny formularz z tym samym wpisem jest nieprawidłowy?
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
Ustawienie empty_permitted False wydaje się dawać oczekiwanych rezultatów dla mnie (co jest dla formset za nieważne z powodu braku „Start” i „end”). To kolejna nieudokumentowana funkcja ...
Czy ktokolwiek poświęci trochę czasu na wyjaśnienia?
Dziękuję