DEV Community

Cover image for Django: Ordenando queryset por ascendente e descendente
Leonardo Veras
Leonardo Veras

Posted on

Django: Ordenando queryset por ascendente e descendente

1. Ordem ascendente

A ordem ascendente, também conhecida como "ascending order" em inglês, é uma forma de organizar uma sequência de itens de maneira crescente, do menor para o maior.

Product.objects.all().order_by('name')
Enter fullscreen mode Exit fullscreen mode

2. Ordem decrescente

A ordem decrescente, também conhecida como "descending order" em inglês, é uma forma de organizar uma sequência de itens de maneira decrescente, do maior para o menor.

Product.objects.all().order_by('-name')
Enter fullscreen mode Exit fullscreen mode

- é usado para indicar ordem decrescente.

Além disso, podemos utilizar outros atributos do model Product como critério de ordenação e "desempate". Imagine que temos dois produtos com mesmo nome, porém com preços diferentes.

Nome Dt. de criação
Produto A 2024-08-01
Produto A 2024-08-02
Produto B 2024-08-03
Produto C 2024-08-04
Produto D 2024-08-05

E como critério, exibir os produtos por Dt. de criação mais recente. Desta maneira, poderemos implementar assim:

Product.objects.all().order_by('name', '-created_at')
Enter fullscreen mode Exit fullscreen mode

O resultado esperado da listagem será o seguinte:

Nome Dt. de criação
Produto A 2024-08-02
Produto A 2024-08-01
Produto B 2024-08-03
Produto C 2024-08-04
Produto D 2024-08-05

Top comments (0)