所以我有一个问题......
qry = Query(models.UserList).filter(...)
models.UserList
包含一个mixin方法,该方法将返回相关表的count
所以我想做的就是......
qry = qry.order_by(models.UserList.contactCount)
然而,这当然会产生无效的sql。
那我该怎么办呢
qry.add_column((this.contactCount).label("contactCount"))
this.contactCount
只是糟糕的伪代码,但希望你明白这一点。
我一直在研究如何做这件事,但sqlalchemy doc不是最容易找到的东西。
任何帮助表示赞赏
答案 0 :(得分:1)
您可以使用column_property
或hybrid_property
。例如:
class UserList(Base):
...
contactCount = column_property(
select(
[func.count()],
contact_id == Contact.id,
).label('contactCount'),
deferred=True,
)