Для добавления собственной валидации полей ввода формы необходимо создать для каждого поля собственный метод проверки, начинающийся со слова 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
Комментариев нет:
Отправить комментарий