Рефакторинг чистого метода Джанго формы - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь реорганизовать код формы приложения django. Форма, к которой относится эта точка зрения, относится к хрустящей форме, но я не знаю, что это актуально. Я сомневаюсь, что существует способ упростить или отделить чистый метод формы.

def clean(self):
        cleaned_data = super(RequirementsForm,self).clean()
        stand_type = cleaned_data.get('stand_type')
        interviewers = cleaned_data.get('numeroentrevistadores')
        lunch_number = cleaned_data.get('lunch_number')
        veggie_lunch_number = cleaned_data.get('veggie_lunch_number')
        dp1 = cleaned_data.get('day_preference_1')
        st1 = cleaned_data.get('stand_preference_1')
        st2 = cleaned_data.get('stand_preference_2')
        st3 = cleaned_data.get('stand_preference_3')
        rs = cleaned_data.get('require_stand')
        pn = cleaned_data.get('producerName')
        pp = cleaned_data.get('producerPhone')
        pe = cleaned_data.get('producerEmail')

        total_lunch = lunch_number + veggie_lunch_number

        #if stand_type and total_lunch:
         #   if stand_type == "1" and total_lunch > 2:
          #      raise forms.ValidationError(
           #         "error1"
            #    )
            #if stand_type == "2" and  total_lunch > 4:
             #   raise forms.ValidationError(
              #      "error2"
               # )

        if interviewers:

            if (stand_type == "1" or stand_type == "2") and interviewers > 2:
                raise forms.ValidationError(
                    "error3"
                )
            if (stand_type == "4" or stand_type == "5") and interviewers > 4:
                raise forms.ValidationError(
                    "error4"
                )
            if stand_type == "3" and interviewers > 3:
                raise forms.ValidationError(
                    "error5"
                )
        if total_lunch:
            if (stand_type == "1" or stand_type == "2") and (lunch_number + veggie_lunch_number) > 2:
                raise forms.ValidationError(
                    "error6"
                )
            if (stand_type == "4" or stand_type == "5") and (lunch_number + veggie_lunch_number) > 4:
                raise forms.ValidationError(
                    "error7"
                )
            if stand_type == "3"  and (lunch_number + veggie_lunch_number) > 3:
                raise forms.ValidationError(
                    "error8"
                )
            if lunch_number <0 or veggie_lunch_number<0:
                raise forms.ValidationError(
                    "error9"
                )

        #if dp1 and dp2 and dp3:
         #   if dp1 == dp2 or dp1 == dp3 or dp2 == dp3:
          #      raise forms.ValidationError(
           #         "error10"
            #    )

        if st1 and st2 and st3:
            if (st1 != 'A' and st1 != 'B'):
                if st1 == st2 or st1 == st3 or st2 == st3 :
                    raise forms.ValidationError(
                        "error11"
                    )

        if rs:
            if rs == "1" and (pn=="" or pp=="" or pe==""):
                raise forms.ValidationError(
                    "error12"
                )

Я читал эту часть документации, но я не уверен, как это сделать. для разделения всей проверки, я имею в виду, что знаю, что могу создавать разные функции для разделения кода метода clean, но мне было интересно, существует ли он для этого стандартно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...