【发布时间】:2010-10-29 23:34:25
【问题描述】:
在我的 Django 应用程序中,我有一个从简单(非模型)表单创建的表单集,其中 extra=1(以允许 javasript 稍后添加更多表单)。
class SomeForm(forms.Form):
#some fields with required=False
length = forms.IntegerField(required=False)
# An example of one of the fields with choices i have
A = 0
B = 1
C = 2
D = 3
choices = ((A, 'Aah'), (B, 'Baa'), (C, 'Caa'), (D, 'Daa'))
# This is a required choice field
pickme = forms.ChoiceField(choices=choices)
SomeFormset = formset_factory(SomeForm, can_delete=True, extra=1)
现在,当我在 POST 请求的视图中创建并尝试验证它时:
my_formset = SomeFormset(request.POST, request.FILES)
if(my_formset.is_valid()):
# FAIL
如果 extra 呈现的表单提交为空,则始终无法通过上述检查。
如果我在最后一个空的额外表单上检查form.changed_data,我会得到可以选择的字段(如上面的pickme)。
换句话说,当需要一些选择字段时,表单集还不够聪明,无法确定应该忽略提交的空表单。
【问题讨论】:
标签: django django-forms formset