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.
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}"
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
1Seu primeiro modelo
Seu primeiro modeloTipos de campoPratique por conta própria: Playground de Django