Ordinamento predefinito
Fa parte della sezione Modelli e pannello di amministrazione del percorso Django di Coddy. Lezione 6 di 23.
I tuoi libri tornano in un ordine non garantito: quello che restituisce il database. Un modello può impostare l’ordinamento una volta per tutte le query che non ne richiedono uno diverso. Le opzioni per l’intero modello, anziché per un singolo campo, vanno 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 nel senso opposto, quindi questo elenco mostra prima i film più recenti. Il secondo nome risolve i pari merito: i film usciti lo stesso giorno vengono ordinati dalla A alla Z.
Sfida
FacileIn books/models.py, fai in modo che i libri vengano restituiti in ordine di titolo, dalla A alla Z, quando non viene richiesto alcun ordinamento.
Premi «Esegui» e digita Book.objects.all() nella scheda Shell: Dune viene per primo e The Hobbit per ultimo.
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