Здравствуйте! Помогите пожалуйста со следующей проблемой!
Я хочу сделать валидацию на отдельное поле, в случае если пользователь вводит только пробелы. Согласно документации для проверки значения поля используется метод clean_<fieldname>(). Но у меня он не вызывается.
forms.py:
import re
from django import forms
from django.core.exceptions import ValidationError
class ActivitySearchBlockForm(forms.Form):
keyword = forms.CharField(label='keyword',
widget=forms.TextInput(
attrs={'placeholder': 'Activity', 'id': 'keyword',
'class': 'form-control addon-activity', 'required': 'required'}))
place = forms.CharField(label='place',
widget=forms.TextInput(
attrs={'placeholder': 'Location', 'id': 'place',
'class': 'form-control addon-location'}))
def clean_keyword(self):
keyword = self.cleaned_data['keyword']
if re.match('/[\s]+$', keyword):
raise ValidationError('Spaces not allowed')
return keyword
template:
<form class="text-center form-inline form-search" action="{% url "search" %}" method="GET">
<div class="form-group ui-widget">
{{ form.keyword.errors }}
{{ form.keyword }}
</div>
<div class="form-group">
{{ form.place }}
</div>
<input type="hidden" name="place_lat" id="place_lat"/>
<input type="hidden" name="place_long" id="place_long"/>
<button type="submit" class="btn navy-btn" id="search_btn">{% trans "Find!" %}</button>
</form>