Come leggere il nome della tabella del database di un'istanza del modello?


101

Dato un oggetto istanza di un modello, come posso ottenere il nome della tabella del database?

Non voglio specificare i nomi in modo esplicito nella classe Meta.

Risposte:


179

Ho trovato la risposta da solo: l'attributo _meta di un'istanza ha le informazioni:

model_instance._meta.db_table

questo è abbastanza strano che il nome della tabella di Model sia accessibile dall'attributo protetto_meta::Options
Alex-Bogdanov

5
@ Alex-Bogdanov: la _metaproprietà non è protetta. È una parte documentata dell'API pubblica. È preceduto dal carattere di sottolineatura iniziale per evitare conflitti con i nomi che le persone potrebbero effettivamente voler utilizzare sui loro modelli.
Ryan Hiebert

1
Se lo desideri, crea un metodo di proprietà per restituirlo ... @property def table_name(self): return self._meta.db_table
Jcc.Sanabria
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.