django перезаписывают форму чистый метод

Когда перезапись формы чистит метод, как Вы знаете если его неудавшаяся проверка на каком-либо из полей? например, в форме ниже, если я перезаписываю чистый метод, как я знаю, привела ли форма проверку к сбою на каком-либо из полей?

class PersonForm(forms.Form):
    title = Forms.CharField(max_length=100)
    first_name = Forms.CharField(max_length=100)
    surname = Forms.CharField(max_length=100)
    password = Forms.CharField(max_length=100)

def clean(self, value):
    cleaned_data = self.cleaned_data

    IF THE FORM HAS FAILED VALIDATION:
        self.data['password'] = 'abc'
        raise forms.ValidationError("You have failed validation!")
    ELSE:
        return cleaned_data 

Спасибо

6
задан John 12 March 2010 в 12:00
поделиться

2 ответа

Вы можете проверить, не были ли добавлены какие-либо ошибки в error dict:

def clean(self, value):
    cleaned_data = self.cleaned_data

    if self._errors:
        self.data['password'] = 'abc'
        raise forms.ValidationError("You have failed validation!")
    else:
        return cleaned_data 

БОНУС! Вы можете проверить наличие ошибок в определенных полях:

def clean(self, value):
    cleaned_data = self.cleaned_data

    if self._errors and 'title' in self._errors:
        raise forms.ValidationError("You call that a title?!")
    else:
        return cleaned_data 
10
ответ дан 8 December 2019 в 14:42
поделиться

Если ваши данные не проходят проверку, в вашем экземпляре формы не будет атрибута cleaned_data

Django Doc on Доступ к «чистым» данным

Используйте self.is_valid () .

5
ответ дан 8 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: