按最接近 0 的值对 Django 查询集进行排序

问题描述 投票:0回答:1

我有一个查询集,它返回与比赛中领先的条目列表......


    leaders = ContestEntry.objects.filter(name=game, wins=wins)

获得这些数据后,我需要通过第二个字段(“差异”)将它们按顺序排列,作为决胜局。我无法弄清楚的问题是我需要按照最接近 0 的数字进行排序。将会有很多负数和正数。

感谢您的帮助

python django sorting django-queryset
1个回答
0
投票

使用 this 回答以下代码应该会给您正确的结果。

from django.db.models import Func, F

leaders = ContestEntry.objects.filter(name=game, wins=wins).annotate(abs_diff=Func(F('difference') - difference, function='ABS')).order_by('abs_diff').first()
© www.soinside.com 2019 - 2024. All rights reserved.