我有以下Django模型:
class myModel(models.Model): name = models.CharField(max_length=255,unique=True) score = models.FloatField()
此模型的数据库中有数千个值.我想高效优雅地使用QuerySets来获得前十名的最高分,并按分数的降序显示他们的分数.到目前为止它相对容易.
皱纹就在这里:如果有多个myModel并列第十名,我想全部展示它们.我不想只看到其中一些.这会过度地给某些名字带来任意优势.如果绝对必要,我可以在Querysets之外进行一些后DB列表处理.但是,我看到的主要问题是我无法通过apriori知道将我的数据库查询限制在前10个元素,因为据我所知,可能有一百万条记录全部并列第十位.
我是否需要按分数对所有myModel进行排序,然后对它们进行一次传递以计算得分阈值?然后使用该计算得分阈值作为另一个Queryset中的过滤器?