我有两个模型: Product和MBiopoint。它们通过名为t_Dataset_Data的多对多表相关联。在Product表中,'data‘属性声明如下:
data = relationship(u'MBiopoint', secondary=t_Dataset_Data)因此,当我像这样查询特定产品的Product表时:
prod = session.query(Product).filter_by(product_id=69).first()我现在可以访问多对多表中与我的产品关联的所有MBiopoint记录,例如,通过以下代码(访问MBiopoint的datastatus列的值):
for pd in prod.data:
print pd.datastatus我现在需要的是在不使用for循环的情况下获得与我的产品关联的所有数据记录的“datastatus”列的不同值,如下所示:d = prod.data.datastatus.distinct()
你有什么想法吗?否则,我可以使用for循环获得不同的值吗?
发布于 2016-02-04 20:04:57
使用freenode Web IRC webchat,昵称为'agronholm‘的用户为我的问题提供了解决方案。他的建议是:
set(pd.datastatus for pd in prod.data)或者用现代的方式:
{pd.datastatus for pd in prod.data}这对我很管用。
https://stackoverflow.com/questions/35183410
复制相似问题