Django 的 models 的 order_by() 是用于对查询结果进行排序的方法。它可以接受一个或多个参数,用于指定按哪些字段进行排序,以及排序的顺序。

语法:

queryset.order_by(*fields)

参数说明:

  • fields:指定按哪些字段进行排序。可以是一个或多个字段,每个字段可以加上前缀'-' 表示倒序排序。

示例:

假设有一个名为Book 的模型,它有 titlepub_date 两个字段,我们可以按 pub_date 字段进行升序排序:

books = Book.objects.all().order_by('pub_date')

也可以按 pub_date 字段进行降序排序:

books = Book.objects.all().order_by('-pub_date')

如果需要按多个字段进行排序,可以将这些字段依次传入 order_by() 方法:

books = Book.objects.all().order_by('pub_date', 'title')

这样会先按 pub_date 字段排序,如果有相同的 pub_date 值,则按 title 字段排序。

需要注意的是,order_by() 方法返回的是一个新的查询集,原查询集并没有被修改。如果需要在原查询集的基础上进行排序,可以使用 queryset = queryset.order_by(...) 的方式。

Django models 的 order_by() 方法详解:排序查询结果

原文地址: https://www.cveoy.top/t/topic/jEYF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录