'y' - это значение по умолчанию для атрибута логических входов 'value
в wtforms.
В соответствии с строкой документации для базы Ввод виджет
По умолчанию метод _value()
вызывается в соответствующем поле для предоставления атрибута value=
HTML.
И BooleanField
_значение метода is
def _value(self):
if self.raw_data:
return text_type(self.raw_data[0])
else:
return "y"
Если вы действительно хотите другое значение, вы можете переопределить его, установив его в аргументе render_kw
поля:
foo = BooleanField('bar', render_kw={'value': '1'})
или подклассом BooleanField
и переопределив его _value
метод.
Обычно нет особой выгоды в переопределении этого значения; wtforms автоматически приведут значение к логическому значению при построении form.data
.
from wtforms import Form, BooleanField
from werkzeug.datastructures import MultiDict
class MyForm(Form):
b = BooleanField('MyBool')
f = MyForm(formdata=MultiDict({'b': 'y'})
f.data
{'b': True}
f = MyForm(formdata=MultiDict({})
f.data
{'b': False}