我真的发现django formsets令人困惑.
我特别遇到以下概念的问题,我并不理解:
formset足够聪明,可以忽略未更改的额外表单.
谈论代码试图太聪明.这应该是什么意思?为什么我甚至想要那个?
然后,试图理解以前的概念,我看到了人
在所需的表格中制作表格.
这是另一个我无法理解的概念.什么是表格中的必填表格,为什么我需要制作表格?再一次没有记录.
然后来到我的实际问题,其他人似乎已经有了,但他们无法真正解释为什么他们修复它的方式他们修复它.
为什么在以下示例中,formset是有效的,而具有相同输入的单个表单将无效?
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
Run Code Online (Sandbox Code Playgroud)
将empty_permitted设置为False似乎为我提供了预期的结果(由于缺少'start'和'end',formset无效).这是另一个未记载的功能......
有人花些时间解释一下吗?
谢谢