Jak odczytać nazwę tabeli bazy danych instancji modelu?


101

Biorąc pod uwagę obiekt instancji modelu, w jaki sposób mogę uzyskać nazwę tabeli bazy danych?

Nie chcę jawnie określać nazw w klasie Meta.

Odpowiedzi:


179

Sam znalazłem odpowiedź: atrybut _meta instancji zawiera informacje:

model_instance._meta.db_table

to dość dziwne, że nazwa tabeli Modelu jest dostępna z chronionego atrybutu_meta::Options
Alex-Bogdanov

5
@ Alex-Bogdanov: _metanieruchomość nie jest chroniona. Jest to udokumentowana część publicznego API. Jest poprzedzony początkowym podkreśleniem, aby uniknąć konfliktów z nazwami, których ludzie mogą chcieć używać w swoich modelach.
Ryan Hiebert

1
Jeśli chcesz, utwórz metodę właściwości, aby ją zwrócić ... @property def table_name(self): return self._meta.db_table
Jcc.Sanabria
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.