私はこのように見える3つのモデルを持っています(簡略化):
ユーザー:
id
username
リソース:
id
name
description
コメント:
id
user_id (relationship User)
resource_id (relationship Resource)
data
date_created
ユーザーのコメントをクエリして、リソースごとにグループ化しようとしています。結果を次のように戻したい:[(Resource A、[Comment、Comment、Comment、...])、(Resource B、[Comment、Comment、...])、(Resource X、[Comment ])]
私はこれを構築するためのさまざまな方法を試しましたが、私はそれを理解できないようです。このようなことをするための適切な方法は何でしょうか?
編集
現在、コードは次のようになっています。
contrib = db_session.query(Resource).filter(Comment.user==user, Resource.uuid==Comment.resource_id).distinct(Comment.resource_id).order_by(desc(Comment.date_created))
comments = db_session.query(Comment, Resource).filter(Comment.user==user, Comment.resource_id.in_([r.uuid for r in contrib]), Resource.uuid==Comment.resource_id).order_by(desc(Comment.date_created))
次に、リスト/辞書の理解を使用して、これらの結果を次のようなものに結合します
[{resource: Resource, comments:[Comment, Comment, Comment]}, {resource: Resource, comments:[Comment, .....]}, .....]
これを行うためのより良い方法がなければなりません!