2014-01-10 47 views
0

當我要檢查空值時,我永遠無法獲得過濾器調用權。使用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

如果您發送'',那麼將其存儲並讀取爲空字符串。如果您發送None,則將其存儲爲NULL,並讀取爲None。使用isinstance(field, db.String)檢查類型。使用db.or_(field.isnot(None), field != '')檢查它是否有非空字符串值。