我有ModelA
和ModelB
个类,我想在名为ModelA
的{{1}}上定义一个属性,其值是下一个查询的结果:
number_of_b_models
其中SELECT count(modelb.id) FROM modelb WHERE modelb.a_id = :1 AND modelb.status = 2
被来自:1
的{{1}}替换。
由于查询本身非常简单且不言自明,因此不必使用a.id
构造或任何其他SQLAlchemy构造 - 只是为了让我能够轻松地使用ModelA
func.count
的实例。
如何在number_of_b_models
上定义ModelA
?
答案 0 :(得分:0)
作为SQLAlchemy模型(ModelA
)本身的属性。此解决方案在内部实现方面并不理想 - 使用Session.object_session
类方法。这可以被insepct(self).session
取代 - 但这几乎是一回事。这显然不适合大规模查询(如果您希望来自number_of_b_models
的{{1}} n
实例,则会触发ModelA
数据库调用。它可以使n
的API更清洁。
ModelA