从sqlAlchemy对象获取不同的值

从sqlAlchemy对象获取不同的值,sqlalchemy,Sqlalchemy,我有两种型号:Product和MBiopoint。 它们通过名为t_Dataset_Data的多对多表进行关联。在Product表中,有如下声明的属性“data”: data = relationship(u'MBiopoint', secondary=t_Dataset_Data) prod = session.query(Product).filter_by(product_id=69).first() 因此,当我在Product表中查询特定产品时,如下所示: data = relati

我有两种型号:Product和MBiopoint。 它们通过名为t_Dataset_Data的多对多表进行关联。在Product表中,有如下声明的属性“data”:

data = relationship(u'MBiopoint', secondary=t_Dataset_Data)
prod = session.query(Product).filter_by(product_id=69).first()
因此,当我在Product表中查询特定产品时,如下所示:

data = relationship(u'MBiopoint', secondary=t_Dataset_Data)
prod = session.query(Product).filter_by(product_id=69).first()
我现在可以访问多对多表中与我的产品关联的所有MBiopoint记录,例如,通过以下代码(访问MBiopoint的datastatus列的值):

我现在需要的是在不使用for循环的情况下获取与我的产品关联的所有数据记录的“datastatus”列的不同值,类似这样:
d=prod.data.datastatus.distinct()

你知道吗?
否则,我可以使用for循环获得不同的值吗?

使用freenode Web IRC webchat,昵称为“agronholm”的用户为我的问题提供了解决方案。 他建议:

set(pd.datastatus for pd in prod.data)
或者以现代的方式:

{pd.datastatus for pd in prod.data}
这对我很管用