从Fields数据中获取None而不是空字符串

时间:2014-02-17 14:08:01

标签: python wtforms flask-wtforms

我在WTForms表单

中有此字段
name = StringField('Name', validators = [Optional(), Length(max = 100)])

当字段提交为空时,form.name.data将按预期包含空字符串。

有没有办法让它返回None而不是空字符串?这只是因为在数据库中处理null非常方便,就像在update中一样:

update t
set 
    name = coalesce(%(name)s, name),
    other = coalesce(%(other)s, other)

使用上面的代码,我不需要检查字段是否为空,并在SQL代码中的Python代码中采取相应的操作。带有null的{​​{1}}可以轻松解决这个问题。

1 个答案:

答案 0 :(得分:18)

filters构造函数

Field参数
name = StringField(
    'Name', 
    validators = [Optional(), Length(max = 100)], 
    filters = [lambda x: x or None]
)

http://wtforms.readthedocs.org/en/latest/fields.html#the-field-base-class