Bagaimana cara membaca nama tabel database dari contoh Model?

101

Mengingat objek contoh model, bagaimana saya bisa mendapatkan nama tabel database?

Saya tidak ingin menentukan nama secara eksplisit di kelas Meta.

Ber
sumber

Jawaban:

179

Menemukan jawabannya sendiri: atribut _meta dari sebuah instance memiliki informasi:

model_instance._meta.db_table
Ber
sumber
ini cukup aneh bahwa nama tabel Model dapat diakses dari atribut yang dilindungi_meta::Options
Alex-Bogdanov
5
@ Alex-Bogdanov: _metaproperti tidak dilindungi. Ini adalah bagian terdokumentasi dari API publik. Ini diawali dengan garis bawah di depan untuk menghindari konflik dengan nama yang mungkin benar-benar ingin digunakan orang pada model mereka.
Ryan Hiebert
1
Jika Anda ingin, buat metode properti untuk mengembalikannya ... @property def table_name(self): return self._meta.db_table
Jcc. Sanabria