Почему я получаю Key Error, когда поднимаю Validation Error в файле form.py?
Не знаю, что здесь происходит, но когда я включаю эту функцию проверки валидности в файл form.py, я получаю ключевую ошибку на поле:
def clean_student_loan_payment_method(self):
student_loan_payment_method = self.cleaned_data['student_loan_payment_method']
student_loan_boolean = self.cleaned_data['student_loan_boolean']
if student_loan_payment_method == None:
student_loan_payment_method = ''
if student_loan_boolean == True and student_loan_payment_method == '':
raise forms.ValidationError(_("Please choose the method by which you repay your Educational Loan."))
return student_loan_payment_method
Если я убираю строку с названием 'raise forms.Validation(...', я не получаю Key Error. Форма отправляется, и все в порядке.
Есть идеи?
Конкретно эта ошибка
student_loan_payment_method = self.cleaned_data['student_loan_payment_method']
KeyError: 'student_loan_payment_method'
Поскольку вы пытаетесь получить доступ к нескольким атрибутам формы, вам следует использовать метод clean
def clean(self):
cleaned_data = super().clean()
student_loan_payment_method = cleaned_data['student_loan_payment_method']
student_loan_boolean = cleaned_data['student_loan_boolean']
if student_loan_payment_method == None:
student_loan_payment_method = ''
if student_loan_boolean == True and student_loan_payment_method == '':
raise forms.ValidationError(_("Please choose the method by which you repay your Educational Loan."))
return cleaned_data
Детали метода очистки здесь