вторник, 5 марта 2013 г.

Django Собственная валидация полей формы

Для добавления собственной валидации полей ввода формы необходимо создать для каждого поля собственный метод проверки, начинающийся со слова clean_ и подставить после него название поля, которое мы хотим проверить.

В результате Django автоматически найдет метод с таким названием и использует его в процессе валидации этого поля формы.

Сначала Django выполнит стандартную валидацию вида: заполнено поле или пусто, а затем выполнит ваш метод clean_, в коде которого будет производится ваша проверка данного поля формы. Если проверка завершится неуспешно, то рядом с полем будет выведено прописанное вами сообщение об ошибке raise forms.ValidationError('Тут ваше сообщение об ошибке.')

Пример.

class ContactForm(forms.Form):
    subject = forms.CharField(max_length = 100)
    email   = forms.EmailField(required = False)
    message = forms.CharField(widget = forms.Textarea)
   
    def clean_subject(self):
        subject = self.cleaned_data['subject']
        num_words = len(message.split())
        if num_words < 4:
            raise forms.ValidationError('Not enough words!')
        return subject

Комментариев нет:

Отправить комментарий