Django QuerySet - 排序


排序

为了对查询集进行排序,Django 使用order_by()方法:

示例

按名字的字母顺序对结果进行排序:

mydata = Member.objects.all().order_by('firstname').values()
运行示例 »

在 SQL 中,上面的语句可以这样写:

SELECT * FROM members ORDER BY firstname;

降序

默认情况下,结果按升序排序(最低值在前),要将方向更改为降序(最高值在前),请使用减号 (NOT),-字段名称前面:

示例

对结果的名字进行降序排序:

mydata = Member.objects.all().order_by('-firstname').values()
运行示例 »

在 SQL 中,上面的语句可以这样写:

SELECT * FROM members ORDER BY firstname DESC;

多个订单

要按多个字段排序,请在字段名称中用逗号分隔字段名order_by()方法:

示例

首先按姓氏升序对结果进行排序,然后按 id 降序排列:

mydata = Member.objects.all().order_by('lastname', '-id').values()
运行示例 »

在 SQL 中,上面的语句可以这样写:

SELECT * FROM members ORDER BY lastname ASC, id DESC;