当我想检查空值时,我似乎永远无法正确获取过滤器调用。
这个功能是否不必要?
def sqla_false(field):
if field.type.__class__ == db.String:
return db.or_(field == None, field == '')
return field == None
sqlalchemy如何存储未设置的字段? 如果我的一个wtforms表单发送一个“”作为其中一个字段的值,当我调用form.populate_obj(obj)时,会将NULL或“”存储在数据库中该怎么办?
答案 0 :(得分:1)
如果您发送''
,则会将其存储并读取为空字符串。如果您发送None
,则会将其存储为NULL
并读为None
。使用isinstance(field, db.String)
检查类型。使用db.and_(field.isnot(None), field != '')
检查它是否具有非空字符串值。