Я пытаюсь использовать wtforms
, чтобы проверить, являются ли данные в словаре требуемого типа. В приведенном ниже примере я хочу убедиться, что some_field
в словаре является целым числом. Документация заставляет меня думать, что если я использую IntegerField
, данные будут принудительно привязаны к целому числу, StringField
будет принуждать к строке и т. Д. Однако foo.validate()
возвращает True
, даже если тип some_field
не является целым числом. Это ожидаемое поведение и почему? Если это ожидаемое поведение, можно ли использовать wtforms
для проверки типа по желанию?WTForms не проверяющий тип
>>> from wtforms import Form, IntegerField, validators
>>> class Foo(Form):
... some_field = IntegerField(validators=[validators.Required()])
>>> foo = Foo(**{'some_field':'some text input'})
>>> foo.data
{'some_field': 'some text input'}
>>> foo.validate()
True
>>> IntegerField?
Type: type
String form: <class 'wtforms.fields.core.IntegerField'>
File: c:\users\aergener\appdata\local\continuum\anaconda\envs\env\lib\site-packages\wtforms\fields\core.py
Init definition: IntegerField(self, label=None, validators=None, **kwargs)
Docstring:
A text field, except all input is coerced to an integer. Erroneous input
is ignored and will not be accepted as a value.
Посмотреть этот пост http://stackoverflow.com/questions/22585652/wtforms-integerfield-skips- принуждение на-строковое значение – Max