Menu
CoddyTech

Scelte

Fa parte della sezione Modelli e pannello di amministrazione del percorso Django di Coddy. Lezione 4 di 23.

Un genere dovrebbe essere uno tra pochi valori, non un testo qualsiasi. L’opzione choices limita un campo a un elenco, definito tramite una classe di enumerazione. Un sito di film potrebbe limitare il pubblico a cui è destinato un film:

class Movie(models.Model):
    class Age(models.TextChoices):
        ALL = "all", "All ages"
        TEEN = "teen", "13 and over"
        ADULT = "adult", "18 and over"

    age = models.CharField(max_length=10, choices=Age, default=Age.ALL)

Ogni membro ha il valore memorizzato nel database, "teen", e l’etichetta che le persone leggono, "13 and over". Nel codice scrivi Movie.Age.TEEN, quindi un errore di battitura è un errore, non un nuovo valore. La classe viene prima del campo che la usa.

I moduli e l’interfaccia di amministrazione mostrano le etichette in un menu a discesa e rifiutano gli altri valori; il database in sé non effettua controlli. movie.get_age_display() restituisce l’etichetta di una riga.

challenge icon

Sfida

Facile

Assegna un genere a Book:

  • All'interno di Book, una classe di scelte Genre: FICTION ("fiction", "Fiction"), SCIFI ("scifi", "Science fiction"), MYSTERY ("mystery", "Mystery"), HISTORY ("history", "History").
  • Un campo genre, fino a 20 caratteri, limitato a queste scelte, con fiction come valore predefinito, a meno che tu non ne scelga un altro.

Nella scheda Shell, prova Book.Genre.SCIFI.label.

Provalo tu

from django.db import models


class Book(models.Model):
    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)
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