【发布时间】:2012-11-24 14:00:57
【问题描述】:
我真的发现 django 表单集令人困惑。
我对以下我不太了解的概念特别有疑问:
表单集足够聪明,可以忽略不存在的额外表单 改变了。
谈论过于聪明的代码。这到底是什么意思?为什么我什至想要那个?
然后,试图理解之前的概念,我看到了人
在所需的表单集中制作表单。
这是另一个我无法理解的概念。什么是表单集中的必填表单,为什么我必须制作必填表单?还有一些没有记录的东西。
然后谈到我的实际问题,其他人似乎也遇到过,但他们无法真正解释为什么他们会以他们解决问题的方式解决它。
为什么在下面的例子中,表单集是有效的,而具有相同输入的单个表单将是无效的?
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
将 empty_permitted 设置为 False 似乎给了我预期的结果(这是由于缺少“开始”和“结束”而导致表单集无效)。这是另一个未记录的功能...
有人能抽出时间解释一下吗?
谢谢
【问题讨论】:
标签: django django-forms