bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/Django/QuerySets
Django•QuerySets

Django QuerySet - Order By

Order By

To sort QuerySets, Django uses the order_by() method:

Order the result alphabetically by firstname

mydata = Member.objects.all().order_by('firstname').values()

In SQL, the above statement would be written like this:

SELECT * FROM members ORDER BY firstname;

Descending Order

By default, the result is sorted ascending (the lowest value first), to change the direction to descending (the highest value first), use the minus sign (NOT), - in front of the field name:

Order the result firstname descending

mydata = Member.objects.all().order_by('-firstname').values()

In SQL, the above statement would be written like this:

SELECT * FROM members ORDER BY firstname DESC;

Multiple Order Bys

To order by more than one field, separate the fieldnames with a comma in the order_by() method:

Example

Order the result first by lastname ascending, then descending on id:

mydata = Member.objects.all().order_by('lastname', '-id').values()

In SQL, the above statement would be written like this:

SELECT * FROM members ORDER BY lastname ASC, id DESC;

Previous

Django QuerySet - Filter

Next chapter

Static Files

Start with Django - Add Static File

This chapter

Overview
4

Lessons

10m

Read time

1. Django QuerySet2. Django QuerySet - Get Data3. Django QuerySet - Filter4. Django QuerySet - Order By

On this page

Order ByDescending OrderMultiple Order Bys