📅  最后修改于: 2023-12-03 15:00:26.529000             🧑  作者: Mango
在Django中,order_by
方法用于对查询结果进行排序。该方法实际上是SQL语句中的ORDER BY
子句的封装。
order_by()
方法的语法如下:
MyModel.objects.order_by(<field>[, <field2>, ...])
其中,<field>
表示按哪个字段进行排序,可以传入多个字段进行联合排序。
例如,我们有一个Book
模型,其中包含title
和price
两个字段,现在我们想按价格从高到低对所有书籍进行排序。
books = Book.objects.order_by('-price')
上述代码中,-price
表示按照价格从高到低排序。如果要按价格从低到高排序,可以去掉负号。
如果我们想按价格从高到低排序并且价格相同时按照书名排序,可以传入多个字段:
books = Book.objects.order_by('-price', 'title')
order_by
方法时,应该尽量避免使用大量的联合排序,这可能会导致性能问题。DateTimeField
而不是DateField
,因为DateTimeField
能够精确到秒,而DateField
只能精确到天。