私は、競争に参加する人々のスコアを記録する単純なdjangoアプリケーションでモデルを得ました。私は2つのモデルオブジェクトEntryとPersonを持っています。各エントリーにはPersonがあり、Personには複数のエントリーがあります。djangoテンプレートのquerysetの単純な順位
各ユーザー、合計得点、順位を示すページを生成したいと考えています。ブロックのために使用して
Entry.objects.values('person__name').annotate(total=Sum('score')).order_by('-total')
私ができるページへの出力この結果をうまく:
次のように私がこれまで持っているコマンドがあります。私が得意でないのはランクだけです。
2つのスコアが同じ場合、ランクはこれを反映する(つまり、「4 =」)ことを含めて、レコードの数値ランクを各レコードに追加する最良の方法は何ですか? forblock.counterと先読み/後ろ向きのメカニズムを使用してテンプレート内でこれを試したり、これをやってみたり、このフィールドをクエリ自体に使ってみたりする方が良いでしょうか?
私はこれを行くつもりです、建築的に最高のアイデアに見えます。 – growse
entry.valueをentry ['value']に、previous.rankを以前の['rank'](と同様のもの)に変更する必要はありませんが、これは完全に機能しました。ありがとう! – growse