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 uma ordem garantida: na ordem que o banco de dados fornecer. 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 sozinho ordena do menor para o maior, de A a Z para textos; um sinal de menos na frente ordena no sentido contrário, então esta configuração lista os filmes mais recentes primeiro. O segundo nome desempata: os filmes lançados no mesmo dia ficam em ordem alfabética.
Desafio
FácilEm books/models.py, faça com que os livros sejam exibidos em ordem alfabética pelo título sempre que nenhuma ordem for especificada.
Pressione Run e digite Book.objects.all() na aba Shell: Dune aparece primeiro e The Hobbit, por último.
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