Как условно удалить поле формы = обязательно
Простое требование к полю, основанное на состоянии другого поля:
class FooForm(forms.Form)
foo = forms.BooleanField()
bar = forms.CharField(required=False)
def clean(self):
if self.cleaned_data.get('foo') and not self.cleaned_data.get('bar'):
raise forms.ValidationError('With foo you must have bar')
Как я могу сделать обратное и удалить требование поля вместо этого?
E.g.
class FooForm(forms.Form)
foo = forms.BooleanField()
bar = forms.CharField(required=True)
def clean(self):
if not self.cleaned_data.get('foo'):
# No foo, no bar required
del bar.required??
Установите bar
не обязательным, и в clean
проверьте, если foo
равно False и bar
не существует:
class FooForm(forms.Form)
foo = forms.BooleanField()
bar = forms.CharField(required=False)
def clean(self):
super().clean()
# No foo and no bar, bad
if not self.cleaned_data.get('foo') and not self.cleaned_data.get('bar'):
raise forms.ValidationError("Bar is required without Foo")