Ordinamento predefinito
Fa parte della sezione Modelli e pannello di amministrazione del percorso Django di Coddy. Lezione 6 di 23.
I tuoi libri tornano senza un ordine garantito: dipende da quello che restituisce il database. Un modello può impostare l’ordine una volta per tutte, per ogni query che non ne richieda uno diverso. Le opzioni per l’intero modello, anziché per un singolo campo, vanno inserite in una classe interna chiamata Meta:
class Movie(models.Model):
...
class Meta:
ordering = ["-released", "title"]ordering è un elenco di nomi di campi. Un nome da solo ordina dal più piccolo al più grande, dalla A alla Z per il testo; un segno meno davanti ordina al contrario, quindi questo elenco mostra prima i film più recenti. Il secondo nome risolve le parità: i film usciti lo stesso giorno sono ordinati dalla A alla Z.
Sfida
Facile- Fai in modo che i libri siano sempre ordinati per titolo dalla A alla Z, quando non viene richiesto un ordinamento.
Premi Run e apri la scheda Data: i quattro libri sono elencati dalla A alla Z. Book.objects.all() nella scheda Shell mostra lo stesso ordine.
Provalo tu
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}"
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Modelli e pannello di amministrazione
1Il tuo primo modello
Il tuo primo modelloTipi di campoEsercitati da solo: Playground Django