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
- Browser-native date input field by kytta 1 month, 1 week ago
- Generate and render HTML Table by LLyaudet 1 month, 2 weeks ago
- My firs Snippets by GutemaG 1 month, 3 weeks ago
- FileField having auto upload_to path by junaidmgithub 3 months ago
- LazyPrimaryKeyRelatedField by LLyaudet 3 months, 1 week ago