Django在模板中进行表单验证

时间:2016-04-27 13:29:31

标签: python django forms django-forms django-templates

我有一个包含许多标准HTML表单的Django项目。

现在我想制作另一个上传文件的表格。我找到了使用django-forms的解决方案。所以对我来说这只是一个简单的课程:

class DocumentForm(forms.Form):
    docfile = forms.FileField(
        label='',
    )
    description = forms.CharField(
        label=u'Description:',
        widget=forms.Textarea(attrs={'rows':4, 'cols':50}),
    )

我想在Textarea字段中添加空白检查。可以在CharField构造函数中添加“required”参数。但在这种情况下,页面将允许POST,我应该在“form.is_valid()”之后编写额外的代码并检查并使用“form.description.errors”来显示我的错误消息。 我希望行为与我的其他形式相似。像

这样的东西
<textarea name="action" required rows="4" cols="50"></textarea>

在这种情况下,我甚至不能在没有非空文本区域的情况下进行POST。更重要的是,我喜欢错误显示。

是否有可能用django-forms制作这样的表格?是否有可能对FileField做出类似的行为?

1 个答案:

答案 0 :(得分:0)

您可以添加required属性,就像添加了rowscols一样:

class DocumentForm(forms.Form):
    docfile = forms.FileField(
        label='',
        required=True, # just in case someone doesn't submit using form 
        widget=forms.ClearableFileInput(attrs={'required': 'required'}),
    )
    description = forms.CharField(
        label=u'Description:',
        required=True, # just in case someone doesn't submit using form 
        widget=forms.Textarea(attrs={'rows': 4, 'cols': 50, 'required': 'required'}),
    )

请注意forms.ClearableFileInput使用FileField小部件,因为这是FileField的默认小部件。