使用SQLAlchemy在模型上通过外键关系定义计数

时间:2014-08-10 09:39:01

标签: python mysql sqlalchemy

我有ModelAModelB个类,我想在名为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

1 个答案:

答案 0 :(得分:0)

作为SQLAlchemy模型(ModelA)本身的属性。此解决方案在内部实现方面并不理想 - 使用Session.object_session类方法。这可以被insepct(self).session取代 - 但这几乎是一回事。这显然不适合大规模查询(如果您希望来自number_of_b_models的{​​{1}} n实例,则会触发ModelA数据库调用。它可以使n的API更清洁。

ModelA