模板中的Django表单验证
问题描述:
我有一个包含许多标准HTML表单的Django项目。模板中的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>
在这种情况下,我甚至不能在没有非空textarea的情况下进行POST。更重要的是我有错误显示,因为我喜欢。
有没有可能用django-forms制作这样的表单?也有可能使FileField具有类似的行为吗?
答
您可以添加required
属性就像你已经添加rows
或cols
:
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'}),
)
请注意FileField
使用forms.ClearableFileInput
widget的,因为那是什么定义为FileField
默认小部件。
谢谢!这正是我需要的!有没有办法为文件上传的FileField进行类似的HTML验证? – kostr22
请检查更新后的答案。 – AKS