1. Как упорядочить набор запросов по возрастанию или убыванию?¶
Упорядочение набора запросов может быть достигнуто методом order_by
. Нам нужно передать поле, по которому мы должны упорядочить (по возрастанию/по убыванию) результат. Запрос выглядит следующим образом
>>> User.objects.all().order_by('date_joined') # For ascending
<QuerySet [<User: yash>, <User: John>, <User: Ricky>, <User: sharukh>, <User: Ritesh>, <User: Billy>, <User: Radha>, <User: Raghu>, <User: rishab>, <User: johny>, <User: paul>, <User: johny1>, <User: alien>]>
>>> User.objects.all().order_by('-date_joined') # For descending; Not '-' sign in order_by method
<QuerySet [<User: alien>, <User: johny1>, <User: paul>, <User: johny>, <User: rishab>, <User: Raghu>, <User: Radha>, <User: Billy>, <User: Ritesh>, <User: sharukh>, <User: Ricky>, <User: John>, <User: yash>]>
Вы можете передать несколько полей в order_by
.
User.objects.all().order_by('date_joined', '-last_login')
Взгляд на SQL
SELECT "auth_user"."id",
-- More fields
"auth_user"."date_joined"
FROM "auth_user"
ORDER BY "auth_user"."date_joined" ASC,
"auth_user"."last_login" DESC