Python turbogears/sqlalchemy中独一无二的django风格
这个问题基本上分为两个部分。 1.我有一种情况,我要求事物在一起是唯一的,即db中的元素需要在一起是唯一的 假设我们有一个模型(粗略的伪代码) 现在我需要thing1_id和thing2_id一起是唯一的,即thing1_id和thing2_id的集合需要一起是唯一的。来自django world,我知道您可以一起在unique_的django模型中进行元声明。但涡轮齿轮如何做到这一点呢Python turbogears/sqlalchemy中独一无二的django风格,python,django,sqlalchemy,turbogears,Python,Django,Sqlalchemy,Turbogears,这个问题基本上分为两个部分。 1.我有一种情况,我要求事物在一起是唯一的,即db中的元素需要在一起是唯一的 假设我们有一个模型(粗略的伪代码) 现在我需要thing1_id和thing2_id一起是唯一的,即thing1_id和thing2_id的集合需要一起是唯一的。来自django world,我知道您可以一起在unique_的django模型中进行元声明。但涡轮齿轮如何做到这一点呢 另外,我如何在遗留系统上实际应用唯一的_ 对于问题的第一部分,如果我正确理解了您的问题,我相信您所说的是定义
class ShoppingList(Base):
thing1_id = Column(Integer, primary_key=True)
thing2_id = Column(Integer, primary_key=True)
Class ShoppingList( object ):
thing1_id = Column(Integer)
thing2_id = Column(Integer)
__table_args__ = (
UniqueConstraint('thing1_id', 'thing2_id'),
)
您只需要向表定义中添加一个
UniqueConstraint
(使用主键将获得类似的效果,但语义不同)
这很简单:
class ShoppingList(Base):
thing1_id = Column(Integer, primary_key=True)
thing2_id = Column(Integer, primary_key=True)
Class ShoppingList( object ):
thing1_id = Column(Integer)
thing2_id = Column(Integer)
__table_args__ = (
UniqueConstraint('thing1_id', 'thing2_id'),
)
另见