django中的formset_工厂验证
如何在没有输入时在NicheSkills表单的第一个字段中设置验证,我单击保存按钮。我希望在第一行没有输入时错误显示为“此字段是必需的”。请帮帮我 Models.py:django中的formset_工厂验证,django,django-forms,Django,Django Forms,如何在没有输入时在NicheSkills表单的第一个字段中设置验证,我单击保存按钮。我希望在第一行没有输入时错误显示为“此字段是必需的”。请帮帮我 Models.py: class NicheSkills(Audit): user = models.ForeignKey(User, null = True, blank = True) title = models.CharField(max_l
class NicheSkills(Audit):
user = models.ForeignKey(User, null = True, blank = True)
title = models.CharField(max_length = 15)
special_skill = models.CharField(max_length = 15)
Forms.py:
class NicheSkillsForm(forms.Form):
title = fields.CharField(max_length=150)
special_skill = fields.CharField(max_length=150)
NicheFormset = formsets.formset_factory(NicheSkillsForm, extra = 1)
模板:
<table cellpadding="3" cellspacing="3" border="0" style="margin-left:65px;">
<tbody>
<tr><td>{{ form5.current_role }}</td></tr>
<tr><td><span class = "forget-errors">{{ form5.current_role.errors }}</span></td></tr>
<tr><td align="center"><input type="button" id="form5" name="save" value="Save" onclick = "save_form(this.id)" /></td></tr>
</tbody>
</table>
为表单类定义clean()
方法,并验证其中的字段
如果要显示整个表单的错误,只需提出一个带有正确错误描述的ValidationError
如果要显示与字段相关的错误(例如连接到第一个空白字段),则必须修改self.\u errors[field]
所有这些都在文档的链接部分进行了描述。使用
self.\u errors
的示例在最后一个代码段的末尾。“没有输入”表示“有一个字段没有输入”或“所有字段都没有输入”?所有字段都没有输入,但对于formset,是否可以使用表单中的验证?我非常确定,表单集中的每个表单通常在构造过程中进行验证。@WojciechŻó322; tak看起来不是,当表单使用formsetŻu工厂构建时,没有一个表单在django中进行验证。
NicheFormset = formsets.formset_factory(NicheSkillsForm, extra = 0)
if request.method == "POST":
formset6 = NicheFormset(request.POST, prefix='fs6')
if formset6.is_valid():
for values in formset6.cleaned_data:
niche_details = NicheSkills(
title = values['title'],
special_skill = values['special_skill'])
niche_details.save()
else:
NicheFormset = formsets.formset_factory(NicheSkillsForm, extra = 1)
formset6 = NicheFormset(prefix='fs6')
return render_to_response('test.html', locals(), RequestContext(request))