我有以下数据库设置
descriptors = db.Table('descriptors',
db.Column('object_id', db.Integer, db.ForeignKey('object.id')),
db.Column('descriptor_id', db.Integer, db.ForeignKey('descriptor.id'))
)
class Descriptor(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(2000))
...
objects = db.relationship('Object', secondary=descriptors, backref=db.backref('descriptors'))
def __repr__(self):
return '<Descriptor %r>' % (self.id)
class Object(db.Model):
id = db.Column(db.Integer, primary_key=True)
...
def __repr__(self):
return '<Object %r>' % (self.id)
我想选择所有具有描述符的对象。含义我想选择描述符表中具有object_id的所有对象。但由于我不能直接查询描述符表,我不知道如何得到它?
答案 0 :(得分:1)
您可以使用过滤器中的any运算符,例如:
session.query(Object).filter(Object.descriptors.any())