Найти - Пользователи
Полная версия: сгенерить и вывести ошибку для метода clean формы
Начало » Django » сгенерить и вывести ошибку для метода clean формы
1
NilovSerge
Если в форме сгенерить ошибку для метода clean то в каком елемента массива будет текст ‘UserError’ ?
    def clean_password(self):
if self.data['password'] != self.data['password2']:
raise forms.ValidationError('Passwords are not the same')
return self.data['password']

def clean(self,*args, **kwargs):
self.clean_email()
self.clean_password()
raise forms.ValidationError('UserError')
Выводя на экран весь массив {{ errors }} то вроде поле с ключам __all__ - но его на экран не выведешь…


Заранее спасибо
Александр Кошелев
А зачем вы явно вызываете `clean` полей?
playpauseandstop
class RegistrationForm(forms.Form):
    ...
    password_1 = forms.CharField(label=_('Password'), widget=forms.PasswordInput(render_value=False))
    password_2 = forms.CharField(label=_('Re-type'), widget=forms.PasswordInput(render_value=False))
    ...
    def clean(self):
        """
        Validate password_1 and password_2 values
        """
        if 'password_1' in self.cleaned_data and 'password_2' in self.cleaned_data:
            if self.cleaned_data['password_1'] != self.cleaned_data['password_2']:
                e = forms.ValidationError(_('You must type the same password each time.'))
                self._errors['password_2'] = e.messages
                raise e
        return self.cleaned_data
и как правильно заметил Daevaorn вручную вызывать clean полей совершенно не нужно… за вас это сделает Django автоматом…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB