您现在的位置是:课程教程文章
Django中怎么对数据查询结果进行排序
2023-12-18 23:54课程教程文章 人已围观
-
NOIP信息学奥赛_C++基础:数据输入输出
NOIP信息学奥赛_C++基础:数据输入输出适合于:零基础的初中或高中的学生,当然有C语言或scratch 或Python语言基础更好... -
【多测师】接口测试之DDT 数据驱动测试系
【多测师】接口测试之DDT 数据驱动测试系课程介绍: ddt :data driver test 数据驱动测试 ddt 数据驱动测试:由外部数据集合... -
单基因快速发文套路TCGA数据库
单基因快速发文套路TCGA数据库单基因快速发文章套路视频(3-5分生信数据挖掘/TCGA数据库) 课程主要内容: 单基... -
【精品课】六年级小学国际英文数学(数
【精品课】六年级小学国际英文数学(数中英结合教学,通俗易懂,教你如何表达数学中的专业术语~! 更多内容请关注...
在你的 Django 应用中,你或许希望根据某字段的值对检索结果排序,比如说,按字母顺序。
那么,使用 order_by() 这个方法就可以搞定了。
>>> Publisher.objects.order_by("name") [<publisher: apress="">, <publisher: o'reilly="">] </publisher:></publisher:>
跟以前的 all() 例子差不多,SQL语句里多了指定排序的部分:
SELECT id, name, address, city, state_province, country, website FROM books_publisher ORDER BY name;
我们可以对任意字段进行排序:
>>> Publisher.objects.order_by("address") [<publisher: o'reilly="">, <publisher: apress="">] >>> Publisher.objects.order_by("state_province") [<publisher: apress="">, <publisher: o'reilly="">] </publisher:></publisher:></publisher:></publisher:>
如果需要以多个字段为标准进行排序(第二个字段会在第一个字段的值相同的情况下被使用到),使用多个参数就可以了,如下:
>>> Publisher.objects.order_by("state_province", "address") [<publisher: apress="">, <publisher: o'reilly="">] </publisher:></publisher:>
我们还可以指定逆向排序,在前面加一个减号 - 前缀:
>>> Publisher.objects.order_by("-name") [<publisher: o'reilly="">, <publisher: apress="">] </publisher:></publisher:>
尽管很灵活,但是每次都要用 order_by() 显得有点啰嗦。 大多数时间你通常只会对某些 字段进行排序。 在这种情况下,Django让你可以指定模型的缺省排序方式:
class Publisher(models.Model): name = models.CharField(max_length=30) address = models.CharField(max_length=50) city = models.CharField(max_length=60) state_province = models.CharField(max_length=30) country = models.CharField(max_length=50) website = models.URLField() def __unicode__(self): return self.name **class Meta:** **ordering = ['name']**
现在,让我们来接触一个新的概念。 class Meta,内嵌于 Publisher 这个类的定义中(如果 class Publisher 是顶格的,那么 class Meta 在它之下要缩进4个空格--按 Python 的传统 )。你可以在任意一个 模型 类中使用 Meta 类,来设置一些与特定模型相关的选项。 在 附录B 中有 Meta 中所有可选项的完整参考,现在,我们关注 ordering 这个选项就够了。 如果你设置了这个选项,那么除非你检索时特意额外地使用了 order_by(),否则,当你使用 Django 的数据库 API 去检索时,Publisher对象的相关返回值默认地都会按 name 字段排序。
课程教程:Django中怎么对数据查询结果进行排序下一篇:没有了