前提・実現したいこと
- DjangoでModelから順位(Rank)を取得したいです。
以下のようなイメージです。
Python
1before_votes = -1 #votesは0以上 2rank = 0 3for object in objectList: 4 if before_votes != object.votes: 5 rank += 1 # rankの値を上書き の意図してる処理 6 print('順位:' + rank) # レンダリングしたい順位 7 print('票数:' + object.votes) 8 before_votes = object.votes
発生している問題・エラーメッセージ
- DjangoでModelをある条件でソートしたときの順位(Rank)が取得したいですが
ViewやModelでの表現の仕方が分かりません。
該当のソースコード
- 以下のようなModelでのRankを最終的にはテンプレート内で参照できるようにしたいですが
Model、Viewともにアプローチ方法が分かりませんでした。
- より具体的には、特定のquestionに紐付いたChoiceの中で、
votesでソートを行い、ランキング化したいと考えています。
python
1class Choice(models.Model): 2 question = models.ForeignKey(Question, on_delete=models.CASCADE) 3 choice_text = models.CharField(max_length=200) 4 votes = models.IntegerField(default=0)
試したこと
- 表現が適切か分かりませんが、ListView内でRankを計算し、Querysetに乗せようとしましたが、
情報を付加する方法が分かりませんでした。
- その他、同様の事例がないか探しましたが、適切な方法を見つけられませんでした。
補足情報(FW/ツールのバージョンなど)
Django 3.0.5
DB:SQLite
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/30 23:55
2020/07/01 00:26
2020/07/01 00:56
2020/07/01 02:14 編集
2020/07/01 03:53
2020/07/01 11:46
2020/07/02 00:24
2020/07/02 01:22
2020/07/02 02:48
2020/07/02 03:10 編集
2020/07/02 04:21
2020/07/02 04:23