必需的布尔字段?

时间:2010-08-05 00:42:08

标签: django django-forms

我有一个布尔字段,

is_operable = BooleanField(widget=RadioSelect(choices=YES_OR_NO, renderer=InlineRadioFieldRenderer), required=False, initial=True)

哪个呈现为两个单选按钮(是或否),但我希望它是必需的。问题是,如果我将其更改为required=True,则在获得False时会抛出验证错误。

有解决方法吗?


YES_OR_NO = (
    (True, 'Yes'),
    (False, 'No')
)

2 个答案:

答案 0 :(得分:3)

将其保留为required=False并编写一个自定义clean_is_operable方法,检查您是否拥有所需内容,否则会抛出ValidationError等

答案 1 :(得分:3)

我建议使用TypedChoiceField将选项YES_OR_NO强制转换为布尔值。查看文档: http://docs.djangoproject.com/en/1.2/ref/forms/fields/#django.forms.TypedChoiceField