Django QuerySet - Order By
Order By
Для сортування QuerySets Django використовує метод order_by()
:
Приклад
Упорядкуйте результати в алфавітному порядку за іменем:
mydata = Member.objects.all().order_by('firstname').values()
Виконати приклад »
У SQL наведена вище інструкція буде написана так:
SELECT * FROM members ORDER BY firstname;
У порядку спадання
За замовчуванням результат сортується за зростанням (спочатку найменше значення), щоб змінити напрямок на спадання (спочатку найвище значення), використовуйте знак мінус (NOT), -
перед назвою поля:
Приклад
Упорядкувати результат імен за спаданням:
mydata = Member.objects.all().order_by('-firstname').values()
Виконати приклад »
У SQL наведена вище інструкція буде написана так:
SELECT * FROM members ORDER BY firstname DESC;
Багатомножинне впорядкування
Щоб упорядкувати за кількома полями, розділіть назви полів комою в методі order_by()
:
Приклад
Упорядкуйте результати спочатку за зростанням прізвища, потім за спаданням ідентифікатора:
mydata = Member.objects.all().order_by('lastname', '-id').values()
Виконати приклад »
У SQL наведена вище інструкція буде написана так:
SELECT * FROM members ORDER BY lastname ASC, id DESC;