我有一个名为“Story”的模型,它有两个名为“views”和“votes”的整数字段。当我检索所有 Story 对象时,我想用一个简单的“视图”/“投票”的“排名”字段来注释返回的 QuerySet。然后我想通过“排名”对 QuerySet 进行排序。类似于...的东西
Story.objects.annotate( ranking=CalcRanking('views','votes') ).sort_by(ranking)
我怎样才能在 Django 中做到这一点?还是应该在 Python 中检索到 QuerySet 之后完成(例如创建一个包含 QuerySet 中每个对象的排名的列表)?
谢谢!
PS:在我的实际程序中,排名计算并没有上面那么简单,并且依赖于初始QuerySet的其他过滤器,所以我不能将它存储为Story模型中的另一个字段。