详解Django的 order_by() 函数:对查询结果进行排序

  • Post category:Python

Django的order_by()函数用于指定查询结果集的排序方式,可以按照一个或多个属性进行排序,可以是升序或降序排列。在ORM中调用它会生成ORDER BY语句来进行排序。

order_by()函数使用方法:

Model.objects.order_by(fieldname1, fieldname2, ...)

其中fieldname是需要排序的字段名,使用负号(-)表示降序排列,否则默认升序排列。

下面提供两个实例说明。

实例1:

假设有一个模型类Book,包含titleprice两个字段,需要按照价格降序排列,代码如下:

from myapp.models import Book

books = Book.objects.order_by('-price')

上述代码会查询所有书籍,并按照价格降序排列。

实例2:

假设有一个模型类Student,包含nameage两个字段,需要按照姓名升序排列,如果姓名相同,则按照年龄降序排列,代码如下:

from myapp.models import Student

students = Student.objects.order_by('name', '-age')

上述代码会查询所有学生,并按照姓名升序排列,如果姓名相同,则按照年龄降序排列。

总结:order_by()函数是Django ORM使用中常用的函数之一,可以通过指定排序的字段名和排序方式来进行排序,使查询结果按照特定顺序排列。