1

そこで質問があります...

qry = Query(models.UserList).filter(...)

models.UserListcount関連テーブルのを返す mixin メソッドが含まれています

だから私がやりたいことは次のようなものです...

qry = qry.order_by(models.UserList.contactCount)

ただし、これはもちろん無効なSQLを生成します。

では、どうすれば次のようなことができますか

qry.add_column((this.contactCount).label("contactCount"))

this.contactCountは悪い疑似コードですが、要点を理解していただければ幸いです。

私はしばらくこれを行う方法を検討してきましたが、sqlalchemy doc は最も簡単に見つけることができるものではありません。

任意の助けをいただければ幸いです

4

1 に答える 1

1

column_propertyそのために、またはのいずれかを使用できますhybrid_property。例えば:

class UserList(Base):
    ...
    contactCount = column_property(
        select(
            [func.count()],
            contact_id == Contact.id,
        ).label('contactCount'),
        deferred=True,
    )
于 2013-01-30T01:50:24.710 に答える