QuerySet 排序方法

收藏269

阅读3555

更新时间2025-08-21

排序方法

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

实例

按名字的字母顺序排列结果:

mydata = Members.objects.all().order_by('firstname').values()

结果

<QuerySet [  {'id': 1, 'firstname': 'Emil', 'lastname': 'Refsnes'},  {'id': 4, 'firstname': 'Lene', 'lastname': 'Refsnes'},  {'id': 3, 'firstname': 'Linus', 'lastname': 'Refsnes'},  {'id': 5, 'firstname': 'Stalikken', 'lastname': 'Refsnes'},  {'id': 2, 'firstname': 'Tobias', 'lastname': 'Refsnes'}]>

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

SELECT * FROM members ORDER BY firstname;
>

降序

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

实例

排序结果 firstname 降序:

mydata = Members.objects.all().order_by('-firstname').values()

结果

<QuerySet [  {'id': 2, 'firstname': 'Tobias', 'lastname': 'Refsnes'},  {'id': 5, 'firstname': 'Stalikken', 'lastname': 'Refsnes'},  {'id': 3, 'firstname': 'Linus', 'lastname': 'Refsnes'},  {'id': 4, 'firstname': 'Lene', 'lastname': 'Refsnes'},  'id': 1, 'firstname': 'Emil', 'lastname': 'Refsnes'}]>

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

SELECT * FROM members ORDER BY firstname DESC;

多个字段排序方法

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

实例

先按lastname升序排列结果,再按id降序排列:

mydata = Members.objects.all().order_by('lastname', '-id').values()

结果

<QuerySet [  {'id': 5, 'firstname': 'Stalikken', 'lastname': 'Refsnes'},  {'id': 4, 'firstname': 'Lene', 'lastname': 'Refsnes'},  {'id': 3, 'firstname': 'Linus', 'lastname': 'Refsnes'},  {'id': 2, 'firstname': 'Tobias', 'lastname': 'Refsnes'},  {'id': 1, 'firstname': 'Emil', 'lastname': 'Refsnes'} ]>

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

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

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

62万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.5万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71.3万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.9万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23.1万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

34.1万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号