Что-то не так с wtforms FieldList && validation ... Следует сказать, что поле должно иметь значение Int, а не Это поле обязательно для заполнения. Почему для f.data указано значение [None, 2, None], а не ['def', 2,'abc']?
from webob.multidict import MultiDict
from wtforms import Form
from wtforms import FieldList, IntegerField
from wtforms import validators
class SearchForm(Form):
locality_id = FieldList(IntegerField(u'Locality', [validators.Required()]))
d = MultiDict([('locality_id-0', 'def'), ('locality_id-1', 2), ('locality_id-2', 'abc')])
f = SearchForm(d)
print f.validate()
print f.errors
print f.data
print f.locality_id.data
% python form_test.py
False
{'locality_id': [[u 'Это поле обязательно для заполнения.'], [u'Это поле обязательно для заполнения. ']]}
{' locality_id ': [Нет, 2, нет]}
[Нет, 2, нет]