Почему я получаю 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

Детали метода очистки здесь

Вернуться на верх