关系默认情况下是一个简单的相等表达式:
Parent.id ==ForeignKey.id。您不能在查询时更改关系的内容*,但是可以创建另一个仅选择所需项目的关系。
class PKMovie(db.Model): # ... future_show_times = db.relationship( lambda: ShowTime, primaryjoin=lambda: db.and_( PKMovie.id == ShowTime.pk_movie_id, ShowTime.date >= db.func.current_timestamp() ), viewonly=True )
访问实例的实例
future_show_times将仅返回将来的放映时间。您可以在查询期间急于加载此关系,以免在访问时引起额外的数据库查询。
PKMovie.query.options(db.joinedload(PKMovie.future_show_times)).all()
有关关系,请参见文档。
*从技术上讲,您 可以 在查询时更改关系,如本答案所示。但是,我认为明确定义这些其他关系要清晰得多。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)