1
class Poll(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(255), unique=False)
is_deleted = db.Column(db.Boolean, default=False)
created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow)
answers = db.relationship('Answer', backref='poll')
class Answer(db.Model):
id = db.Column(db.Integer, primary_key=True)
poll_id = db.Column(db.Integer, db.ForeignKey(Poll.id), nullable=False)
title = db.Column(db.String(255), unique=False, nullable=False)
votes = db.Column(db.Integer, nullable=False)
is_deleted = db.Column(db.Boolean, default=False, nullable=False)
created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow)
poll = PollModel.query.join(
PollModel.answers
).options(
subqueryload(PollModel.answers.query)
).filter(
PollModel.id == poll_id,
PollModel.is_deleted == False,
)[0]
我想过滤由“is_deleted”属性子查询的相关答案。但是,我一直只会过滤民意调查是否有未删除的答案。如何通过子查询过滤相关对象。SQLAlchemy过滤器相关的子查询
我认为你需要使用'contains_eager'来实现这一点。请看看这个选项的文档。此外[这个答案](http://stackoverflow.com/a/7804059/99594)可能会有所帮助。 – van