Django form field required conditionally
15,226
Check the Chapter on Cleaning and validating fields that depend on each other in the documentation.
The example given in the documentation can be easily adapted to your scenario:
def clean(self):
cleaned_data = super(SignupFormExtra, self).clean()
is_company = cleaned_data.get("is_company")
nip = cleaned_data.get("NIP")
if is_company and not nip:
raise forms.ValidationError("NIP is a required field.")
return cleaned_data
Related videos on Youtube
Author by
Efrin
Updated on September 15, 2022Comments
-
Efrin almost 2 years
I'd like to have a field which is required conditionally based on setting a boolean value to
True
orFalse
.What should I return to set
required =True
ifis_company
is set toTrue
?class SignupFormExtra(SignupForm): is_company = fields.BooleanField(label=(u"Is company?"), required=False) NIP = forms.PLNIPField(label=(u'NIP'), required=False) def clean(self): if self.cleaned_data.get('is_company', True): return ...? else: pass
-
Seth almost 11 yearsThe link @arie provided also covers how to associate the error with the field by replacing the raise statement with self._errors["NIP"] = self.error_class(["This is a required field."])
-
Reaz Murshed almost 4 years@Seth thanks for the comment! That was really helpful!