Python 在执行保存操作之前验证SQLAlchemy枚举

Python 在执行保存操作之前验证SQLAlchemy枚举,python,python-2.7,sqlalchemy,Python,Python 2.7,Sqlalchemy,考虑以下列定义: group_name = db.Column(db.Enum('dogs', 'cats', name='device_group')) 然后在我的API函数中,我执行以下操作: lassie.group_name = userData.group db.session.add(obj) db.session.commit() 问题是,即使userData.group在Python中被视为字符串。即使它的值是“bird”,在我实际执行提交操作之前,我也不会得到任何异常 为

考虑以下列定义:

group_name = db.Column(db.Enum('dogs', 'cats', name='device_group'))
然后在我的API函数中,我执行以下操作:

lassie.group_name = userData.group
db.session.add(obj)
db.session.commit()
问题是,即使
userData.group
在Python中被视为字符串。即使它的值是
“bird”
,在我实际执行提交操作之前,我也不会得到任何异常

  • 为什么SQLAlchemy将
    组名
    视为字符串而不是枚举
  • 如何验证我在对象上输入的值是否为枚举
  • 我应该用它吗

当您使用
@validates('group_name')
时会发生什么?@LawrenceBenson您的意思是什么?编写自定义验证器?@VitalyB解决方案是什么?@KavinRajuS我恐怕找不到。最好的方法是在读写时手动验证enjm值。。。。谢谢@vitalyb当你使用
@validates('group_name')
时会发生什么事?@LawrenceBenson你是什么意思?编写自定义验证器?@VitalyB解决方案是什么?@KavinRajuS我恐怕找不到。最好的方法是在读写时手动验证enjm值。。。。谢谢你@VitalyB