排序查询集的好方法?-Django
我想做的是这样的:
获得得分最高的30位作者(Author.objects.order_by('-score')[:30]
)
订购作者 last_name
回答:
关于什么
import operatorauths = Author.objects.order_by('-score')[:30]
ordered = sorted(auths, key=operator.attrgetter('last_name'))
在Django 1.4及更高版本中,你可以通过提供多个字段进行订购。
参考:https : //docs.djangoproject.com/en/dev/ref/models/querysets/#order-by
order_by(*
字段)
默认情况下,a返回的结果由模型的Meta中QuerySet的ordering选项给出的排序元组排序。你可以使用order_by方法基于每个QuerySet重写此方法。
例:
ordered_authors = Author.objects.order_by('-score', 'last_name')[:30]
上面的结果将按score降序排列,然后按last_name升序排列。前面的负号”-score”表示降序。暗含升序。
以上是 排序查询集的好方法?-Django 的全部内容, 来源链接: utcz.com/qa/399047.html