2015-07-21 55 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