str e la classe Meta
Renda gli oggetti leggibili e imposti il comportamento della tabella
str e la classe Meta è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.
Renda leggibili gli oggetti
Per impostazione predefinita, un oggetto del modello viene visualizzato come un generico Object 1. Può correggere questo comportamento e definire in modo ordinato anche quello della tabella.
Definisca __str__
Aggiunga un metodo __str__ che restituisca un'etichetta comprensibile. Ora l'oggetto mostrerà il suo titolo invece di un numero inutile.
class Book(models.Model):
title = models.CharField(max_length=200)
def __str__(self):
return self.titleDove viene visualizzato __str__
L'etichetta restituita da __str__ compare nell'interfaccia di amministrazione, nella shell e nei template, rendendo ogni oggetto immediatamente riconoscibile. 👀
Restituisca sempre una stringa
Il metodo __str__ deve restituire una stringa. Se un field potrebbe contenere un numero, lo trasformi con str() prima di restituirlo.
def __str__(self):
return str(self.year)Conosca la classe Meta
Una classe interna Meta contiene le opzioni relative all'intero modello, separate dai suoi field. Permette di configurare il comportamento della tabella.
class Book(models.Model):
class Meta:
ordering = ["title"]ordering imposta l'ordinamento predefinito
L'opzione Meta ordering stabilisce l'ordinamento predefinito dei risultati delle query, così gli elenchi vengono restituiti in un ordine prevedibile.
class Meta:
ordering = ["-created"]Nomi comprensibili con verbose_name
Usi verbose_name e verbose_name_plural in Meta per controllare le etichette visualizzate da Django nell'interfaccia di amministrazione.
class Meta:
verbose_name_plural = "Books"Nome personalizzato della tabella
Sovrascriva il nome generato della tabella con db_table in Meta quando deve adattarsi a un database esistente o legacy.
class Meta:
db_table = "catalog_books"Unicità tra più field
L'opzione Meta unique_together richiede che una combinazione di field sia univoca, ad esempio uno slug per autore.
class Meta:
unique_together = ["author", "slug"]Meta descrive il modello
Consideri Meta come l'insieme delle impostazioni dell'intero modello, mentre i field e __str__ ne descrivono i dati e la visualizzazione.
Entrambi sono facoltativi, ma utili
Può omettere __str__ e Meta, ma aggiungerli rende i modelli molto più semplici da usare ogni giorno.
Verifica rapida
Qual è il compito principale del metodo __str__ in un modello?
Riepilogo: __str__ e Meta
Ha imparato che __str__ assegna agli oggetti un nome leggibile e che la classe Meta configura il comportamento generale del modello, come ordinamento e nomi. Modelli più curati! 🎉
Domande Frequenti
La lezione «str e la classe Meta» è gratuita?
Sì — il testo completo di «str e la classe Meta» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.
Cosa imparerò in «str e la classe Meta»?
Renda gli oggetti leggibili e imposti il comportamento della tabella Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Django Academy?
Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «str e la classe Meta»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Django Academy?
Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Definire una classe Model
- Scegliere i tipi di campo
- Opzioni dei campi: null, blank e default
- str e la classe Meta