[Django]-Django order_by query set, ascending and descending

877๐Ÿ‘

โœ…

Reserved.objects.filter(client=client_id).order_by('-check_in')

Notice the - before check_in.

- before column name mean "descending order", while without - mean "ascending".

Django Documentation

๐Ÿ‘คKeith

89๐Ÿ‘

Reserved.objects.filter(client=client_id).order_by('-check_in')

A hyphen โ€œ-โ€ in front of โ€œcheck_inโ€ indicates descending order. Ascending order is implied.

We donโ€™t have to add an all() before filter(). That would still work, but you only need to add all() when you want all objects from the root QuerySet.

More on this here:
https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-specific-objects-with-filters

๐Ÿ‘คLeonardo.Z

45๐Ÿ‘

Adding the โ€“ will order it in descending order.
You can also set this by adding a default ordering to the meta of your model. This will mean that when you do a query you just do MyModel.objects.all() and it will come out in the correct order.

class MyModel(models.Model):

    check_in = models.DateField()

    class Meta:
        ordering = ('-check_in',)
๐Ÿ‘คThomas Turner

31๐Ÿ‘

You can also use the following instruction:

Reserved.objects.filter(client=client_id).order_by('check_in').reverse()
๐Ÿ‘คPatrick

20๐Ÿ‘

for ascending order:

Reserved.objects.filter(client=client_id).order_by('check_in')

for descending order:

1.  Reserved.objects.filter(client=client_id).order_by('-check_in')

or

2.  Reserved.objects.filter(client=client_id).order_by('check_in')[::-1]

9๐Ÿ‘

  1. Ascending order

    Reserved.objects.all().filter(client=client_id).order_by('check_in')
    
  2. Descending order

    Reserved.objects.all().filter(client=client_id).order_by('-check_in')
    

- (hyphen) is used to indicate descending order here.

8๐Ÿ‘

If for some reason you have null values you can use the F function like this:

from django.db.models import F

Reserved.objects.all().filter(client=client_id).order_by(F('check_in').desc(nulls_last=True))

So it will put last the null values.
Documentation by Django: https://docs.djangoproject.com/en/stable/ref/models/expressions/#using-f-to-sort-null-values

7๐Ÿ‘

This is very easy and simple just follow the below instruction.

โ€”โ€“ This for Descending

Reserved.objects.filter(client=client_id).order_by('-check_in')

โ€”โ€”This for Ascending

Reserved.objects.filter(client=client_id).order_by('check_in')

if you want to select by Descending just add minus operator before the attribute field or if you want to select by Ascending no need minus operator.

๐Ÿ‘คMithun Rana

6๐Ÿ‘

Reserved.objects.filter(client=client_id).earliest('check_in')

Or alternatively

Reserved.objects.filter(client=client_id).latest('-check_in')

Here is the documentations for earliest() and latest()

๐Ÿ‘คAmin Mir

2๐Ÿ‘

This is working for me.

latestsetuplist = SetupTemplate.objects.order_by('-creationTime')[:10][::1]
๐Ÿ‘คbihari_gamer

2๐Ÿ‘

You can try this

Staffs.objects.filter(active=1).order_by('rank')

โ€“ (hyphen) is used to indicate descending orde.

๐Ÿ‘คBercove

1๐Ÿ‘

Order By Ascending:

Structure:

Model.objects.filter(model_column_name=model_column_value).order_by(expected_column_name as string)

Example:

Employee.objects.filter(department=department_id).order_by('salary')

Order By Descending:

Structure:

Model.objects.filter(model_column_name=model_column_value).order_by(-expected_column_name as string)

Example:

Employee.objects.filter(department=department_id).order_by('-salary')
๐Ÿ‘คMD. SHIFULLAH

Leave a comment