2014-02-07 70 views
0

我有一個表單類需要一個模型,meta類的表單如下, 問題是我想讓patient_signature和worker_signature字段沒有要求,我試過了刪除類required_css_class,但沒有幫助,給每個需要的屬性類作爲True/False也沒有幫助。使用required = False,仍然得到必填字段錯誤

任何建議...?

class Meta: 
     model = Locator 
     exclude = ('patient','worker', 'mode_of_transmission', 'secondary_telephone_number', 'locator', 'grant', 'thumbnail') 
     creation_date=forms.DateField(initial=datetime.date.today, 
             widget=SelectDateWidget(), 
             label="Creation Date") 
     patient_signature=forms.CharField(widget=ClientSignatureWidget()) 
     worker_signature=forms.CharField(widget=WorkerSignatureWidget()) 
     required_css_class = 'required' 
+0

@Daniel Roseman答案是正確的,但是如果您想在Locator的每個ModelForm上將False設置爲False,您可以在字段patient_signature(模型級別)上設置blank = True。 –

回答

0
patient_signature=forms.CharField(widget=ClientSignatureWidget(), required=False) 
+0

這不起作用,該字段仍然錯誤地表明這是一個必填字段。 – user3269734

1

假設你是在談論一個ModelForm,你不能覆蓋的領域內Meta。它必須在外面。

另外,如果在模型中,但不是在形式所需的字段,然後你必須提供一個默認值,比如:

class LocatorForm: 
    patient_signature = forms.CharField(widget=forms.HiddenInput(), initial=" ") 

    class Meta: 
     ... 

另外,沒有提及在fields那場列出並通過覆蓋提交表單的POST來設置值。