WTForms BooleanField将JSON假值视为tru

2024-04-16 08:03:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用wtforms来处理post请求中的数据。一个特定的post请求发送包括布尔值在内的各种数据。在

我的表格如下:

class EditFileForm(Form):
    title = StringField('title')
    shared = BooleanField('shared')
    fileID = IntegerField('fileID')
    userID = IntegerField('userID')

我可以看到,当我收到请求时,数据如下所示:

^{pr2}$

您可以看到boolean字段是“false”,打印原始数据也显示了这一点,但是,当我打印实际的表单字段时,我得到了true。在

print(form.shared.raw_data)
[False]
print(form.shared.data)
True

我读到WTForms可能不知道如何处理假布尔值。正确的方法是什么?改为使用IntegerField?在

我有另一个表单,它有一个booleanfield,可以处理postgres数据库中的假布尔值。在


Tags: 数据formdatatitlepostwtformsclass表格
1条回答
网友
1楼 · 发布于 2024-04-16 08:03:17

WTForms实际上并不打算处理JSON数据。在本例中,BooleanField检查它接收到的值是否在field.false_values中,默认值为('false', '')False对象不在那里,因此它被认为是真的。在

您可以将另一组false_values传递给字段。在

BooleanField(false_values={False, 'false', ''})

或者在第一次使用该字段之前将其放在某个地方来修补所有实例。在

^{pr2}$

最好使用一个序列化库,比如Marshmallow来处理JSON数据。在

相关问题 更多 >