我有一张这样的桌子:
class Sample(Base):
__tablename__ = 'sample'
id = Column(Integer, primary_key=True)
type = Column(Enum(u'Lion', u'Tiger', name='types'))
color = Column(Enum(... a specific list based on type ...))
和一本字典:
colors = { 'Lion' : ['gold', 'orange'],
'Tiger' : ['blackorange', 'whiteblue']
}
现在我想要一个约束,它允许我的样本中的颜色属性只能是对应列表中的一个项目。
这是解决这个问题的聪明方法?
(我发现的唯一方法是使用一种 setter 方法:Using Descriptors and Hybrids)