Python 当一个属性是模型方法时,Django QuerySet的升序/降序

Python 当一个属性是模型方法时,Django QuerySet的升序/降序,python,django,sorting,Python,Django,Sorting,我有一组按学校名称排序的队。其中一个属性是跟踪团队获胜百分比的模型方法。我想把获胜率从高到低排序。如果球队的获胜率相同,我希望他们按学校的字母顺序排列。我怎样才能得到这样的东西: team pct x 0.75 a 0.50 b 0.50 c 0.50 y 0.25 因为获胜百分比是一种模型方法,所以我一直在使用Python对已经按字母顺序排列的查询集进行排序,但是当我这样做时,学校的字母顺序就丢失了: team_list = Team.objects.orde

我有一组按学校名称排序的队。其中一个属性是跟踪团队获胜百分比的模型方法。我想把获胜率从高到低排序。如果球队的获胜率相同,我希望他们按学校的字母顺序排列。我怎样才能得到这样的东西:

team  pct
x    0.75
a    0.50
b    0.50
c    0.50
y    0.25
因为获胜百分比是一种模型方法,所以我一直在使用Python对已经按字母顺序排列的查询集进行排序,但是当我这样做时,学校的字母顺序就丢失了:

team_list = Team.objects.order_by('school')
sorted_team_list = sorted(team_list, key=lambda x: x.win_pct, reverse=True)

分两步进行,因为排序是稳定的,所以还不错:

from operator import attrgetter

sorted_team_list = sorted(team_list, key=attrgetter('school'))
sorted_team_list = sorted(sorted_team_list, key=attrgetter('win_pct'), reverse=True)

分两步进行,因为排序是稳定的,所以还不错:

from operator import attrgetter

sorted_team_list = sorted(team_list, key=attrgetter('school'))
sorted_team_list = sorted(sorted_team_list, key=attrgetter('win_pct'), reverse=True)

谢谢你的回复,但是学校的字母顺序是相反的。我该如何撤销win_pct而不是学校?感谢您的回复,但学校将按字母顺序颠倒。我如何逆转胜利而不是学校?