Django form validation: making “required” conditional?

后端 未结 2 971
礼貌的吻别
礼貌的吻别 2021-01-04 04:14

I\'m new to Django (and Python), and am trying to figure out how to conditionalize certain aspects of form validation. In this case, there\'s a HTML interface to the applica

2条回答
  •  自闭症患者
    2021-01-04 04:34

    I found myself needing a "standard" way to do this, as my forms have several conditionally required fields. So I created a superclass with the following method:

    def validate_required_field(self, cleaned_data, field_name, message="This field is required"):
        if(field_name in cleaned_data and cleaned_data[field_name] is None):
            self._errors[field_name] = self.error_class([message])
            del cleaned_data[field_name]
    

    And then in my form's clean method I have:

    def clean(self):
        cleaned_data = super(FormClass, self).clean()
        if(condition):
            self.validate_required_field(cleaned_data, 'field_name')
    

    It's worked perfectly for me so far.

提交回复
热议问题