- March 24, 2009
- required boolean bool boolean-field null-boolean-field
- 3 (after 3 ratings)
In our situation, we want the user to choose either yes or no. The only requirement is that they fill out the form. It is not required that they answer True/Yes.
The BooleanField treats None and False as False; The NullBooleanField distinguishes between None and False, but it doesn't raise any validation errors.
Subclassing the NullBooleanField was better than overriding the clean method on all of our NullBooleanField instances.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# fields.py from django import forms class RequiredNullBooleanField(forms.NullBooleanField): def clean(self, value): value = super(RequiredNullBooleanField, self).clean(value) if value is None: raise forms.ValidationError("This field is required.") return value # forms.py from django import forms from project.fields import RequiredNullBooleanField class MyForm(forms.Form): question = RequiredNullBooleanField(label="Have you ever travelled in an airplane?", widget=forms.RadioSelect(choices=[(True, "Yes"), (False, "No")]))
More like this
- TrueNoneField by diverman 6 years, 4 months ago
- Template filter to markup form fields with optional args by fleggs 4 years, 4 months ago
- Allow filtering and ordering by counts of related query results by exogen 9 years ago
- FieldLevelPermissionsAdmin by buriy 8 years, 7 months ago
- Exists Filter OneToOneField in Admin by davidvaz 4 years, 5 months ago