我有这个非常简单的形式,我希望唯一的字段不能为空。 所以在doc中,required = True就是答案:
class AjouterGroupe(forms.Form):
nom = forms.CharField(required=True, label="", max_length=30, widget=forms.TextInput(attrs={'placeholder': 'Nom', 'class':'form-control input-perso'}))
这是我的一些观点:
Formset = formset_factory(data.form(table, 1), extra=nbajout)
if request.method == 'POST' and first:
formset = Formset(request.POST, request.FILES)
if formset.is_valid():
nbajout = 0
envoi = True
for form in formset:
print(form.is_valid())
print(form)
form.save()
form = nbAjout()
else:
formset = Formset()
在特定情况下,data.form(table,1)= AjouterGroupe。
但主要问题是当我用空字段验证时,form.is_valid()为True:/
Variable Value
csrfmiddlewaretoken 'uw1fFj9toTU3o3Il3lFW0yvt4OS31XUn'
form-INITIAL_FORMS '0'
form-MAX_NUM_FORMS '1000'
form-TOTAL_FORMS '1'
form-MIN_NUM_FORMS '0'
form-0-nom ''
答案 0 :(得分:2)
这是因为Formsets
允许空值。如果未输入任何内容,则将其视为不需要添加的表单。
单独尝试使用您的表单(不是表单集的一部分):在那里,您的required=True
将正常工作。此外,如果您尝试使用包含两个字段的模型(均设置为required=True
),您将看到如果只填充一个字段则会引发错误。
您应该可以使用formset_factory
等min_num=<number>, validate_min=True, extra=1
参数来强制进行验证。