2015-07-21 51 views
3

我在我的應用程序中有一個模型表單,我希望我的兩個模型表單域是可選的,即用戶可以將這兩個表單域留空,並且Django表單驗證不應該引發同樣的錯誤。Django:可選模型表單域

我已經爲這兩個領域blank = Truenull = True如下:

questions = models.CharField(blank=True, null = True, max_length=1280) 
about_yourself = models.CharField(blank=True, null = True, max_length=1280) 

forms.py

questions = forms.CharField(help_text="Do you have any questions?", widget=forms.Textarea) 
about_yourself = forms.CharField(help_text="Tell us about yourself", widget=forms.Textarea) 

然而,如果這兩個領域上留下空白提交,一個This field is required上升。

這裏似乎有什麼錯?我如何在Django中設置可選的模型表單域?

回答

2

試試這個:

questions = forms.CharField(help_text="Do you have any questions?", widget=forms.Textarea, required=False) 
about_yourself = forms.CharField(help_text="Tell us about yourself", widget=forms.Textarea, required=False) 
1

我想這是因爲你重新定義你的表中的字段,所以如果例如型號名稱是爲MyModel,然後簡單地定義一個的ModelForm

MyModelForm(forms.ModelForm): 
    class Meta: 
     model = MyModel 

它會工作,但因爲你定義的字段,它使用的Django fields.Field,這是需要=真

你可以簡單地添加必需=真到你的領域definiti的默認值ons

+0

這個答案適合我,因爲它是用於表單定義的字段,我需要required = False – shadi