Menu
CoddyTech

Ordenação padrão

Parte da seção Models e o Admin do Journey de Django da Coddy. Lição 6 de 23.

Seus livros voltam sem nenhuma ordem garantida: depende do que o banco de dados retornar. Um modelo pode definir a ordem uma vez, para todas as consultas que não solicitarem outra. As opções para o modelo inteiro, em vez de para um único campo, ficam em uma classe interna chamada Meta:

class Movie(models.Model):
    ...

    class Meta:
        ordering = ["-released", "title"]

ordering é uma lista de nomes de campos. Um nome sem sinal ordena do menor para o maior, de A a Z no caso de texto; um sinal de menos na frente ordena na direção oposta, então esta configuração lista primeiro os filmes mais recentes. O segundo nome desempata: filmes lançados no mesmo dia ficam em ordem alfabética, de A a Z.

challenge icon

Desafio

Fácil
  • Faça com que os livros apareçam em ordem alfabética pelo título, de A a Z, sempre que nenhuma ordem for especificada.

Clique em Run e abra a aba Data: os quatro livros estão listados de A a Z. Book.objects.all() na aba Shell mostra a mesma ordem.

Experimente você mesmo

from django.db import models


class Book(models.Model):
    class Genre(models.TextChoices):
        FICTION = "fiction", "Fiction"
        SCIFI = "scifi", "Science fiction"
        MYSTERY = "mystery", "Mystery"
        HISTORY = "history", "History"

    title = models.CharField(max_length=200)
    author = models.CharField(max_length=100)
    year = models.IntegerField()
    price = models.DecimalField(max_digits=6, decimal_places=2)
    is_read = models.BooleanField(default=False)
    finished = models.DateField(null=True, blank=True)
    summary = models.TextField(blank=True)
    genre = models.CharField(max_length=20, choices=Genre, default=Genre.FICTION)

    def __str__(self):
        return f"{self.title} by {self.author}"
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Models e o Admin

Pratique por conta própria: Playground de Django