查询父模型时可以过滤关系的内容吗?

查询父模型时可以过滤关系的内容吗?,第1张

查询父模型时可以过滤关系的内容吗?

关系默认情况下是一个简单的相等表达式:

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()

有关关系,请参见文档。


*从技术上讲,您 可以 在查询时更改关系,如本答案所示。但是,我认为明确定义这些其他关系要清晰得多。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5648387.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存