使用sqlalchemy检查空值

时间:2014-01-10 15:09:30

标签: python sqlalchemy

当我想检查空值时,我似乎永远无法正确获取过滤器调用。

这个功能是否不必要?

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或“”存储在数据库中该怎么办?

1 个答案:

答案 0 :(得分:1)

如果您发送'',则会将其存储并读取为空字符串。如果您发送None,则会将其存储为NULL并读为None。使用isinstance(field, db.String)检查类型。使用db.and_(field.isnot(None), field != '')检查它是否具有非空字符串值。