2016-04-27 61 views
0

我有一个包含许多标准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具有类似的行为吗?

回答

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'}), 
    ) 

请注意FileField使用forms.ClearableFileInput widget的,因为那是什么定义为FileField默认小部件。

+0

谢谢!这正是我需要的!有没有办法为文件上传的FileField进行类似的HTML验证? – kostr22

+0

请检查更新后的答案。 – AKS