Menu
CoddyTech

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.

challenge icon

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}"
quiz iconMettiti alla prova

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

Esercitati da solo: Playground Django