0

Elixirを使用し、投票者と候補者の2つのエンティティを持ち、それらの間に多対多があります(投票者は重要な場合は多くの候補者に投票できます)。有権者の数でソートされた候補者のリストを取得したい。そのようなエリクサーの宣言を使用してそれを行う方法はありますか?:

class Voter(Entity):
    votes = ManyToMany('Candidate')

class Candidate(Entity):
    voters = ManyToOne('Voter')

多対多の関係に基づいてSQLAlchemyの順序付けを読みましたが、Elixirを使用してより明確な方法でそれを実行したいと考えています。可能だといいのですが。

4

1 に答える 1

1

エリクサーで多対多の関係で注文できることを私が見つけた唯一の方法は、関係から二次テーブルをウィンクアウトし、「錬金術でいつものように」行うことです。大まかに次のようなものです。

secondr_table = Candidate._descriptor.find_relationship('voters').secondary_table
cands_by_rank = (
    session.query(
        Candidate.id,
        func.count(secondr_table.c.candidate_id).label('total')
    )
    .join(secondr_table)
    .group_by(Candidate)
    .order_by('total DESC')
于 2012-02-06T09:41:47.210 に答える