Поле формы Django требуется условно
Я хотел бы иметь поле, которое требуется условно на основе установки логического значения в True или False.
Что мне нужно вернуть для установки required = True, если для is_company установлено значение True?
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
Ответы
Ответ 1
Проверьте главу Очистка и проверка полей, которые зависят друг от друга в документации.
Пример, приведенный в документации, может быть легко адаптирован к вашему сценарию:
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