Вопрос по forms, django – Поле формы Django обязательно условно

21

Я хотел бы иметь поле, которое необходимо условно на основе установки логического значения в 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   ответ
30

Очистка и проверка полей, которые зависят друг от друга в документации.

Пример, приведенный в документации, может быть легко адаптирован к вашему сценарию:

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
Предоставленная ссылка @arie также описывает, как связать ошибку с полем, заменив оператор поднятия на self._errors [& quot; NIP & quot;] = self.error_class ([& quot; это обязательное поле. & Quot;])

Похожие вопросы