Я пытаюсь реорганизовать код формы приложения 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, но мне было интересно, существует ли он для этого стандартно.