2016-04-27 91 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