Что-то не так с валидацией wtforms FieldList && - PullRequest
1 голос
/ 18 июня 2011

Что-то не так с 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, нет]

1 Ответ

1 голос
/ 18 июня 2011

Похоже, в IntegerField блоке try... except есть блок *1001*, который помещает все не-целые в свойство process_errors и что классу специально запрещено разрешать заполнять данные чем-либо, кроме действительных данных.,Я полагаю, что вы все равно можете получить значения, которые ищете в свойстве raw_data, однако.

...