Como ler o nome da tabela de banco de dados de uma instância de modelo?

101

Dado o objeto de instância de um modelo, como posso obter o nome da tabela do banco de dados?

Não quero especificar nomes explicitamente na classe Meta.

Ber
fonte

Respostas:

179

Eu mesmo encontrei a resposta: o atributo _meta de uma instância contém as informações:

model_instance._meta.db_table
Ber
fonte
isso é muito estranho que o nome da tabela de Model acessível a partir de um atributo protegido_meta::Options
Alex-Bogdanov
5
@ Alex-Bogdanov: a _metapropriedade não está protegida. É uma parte documentada da API pública. Ele é prefixado com o sublinhado inicial para evitar conflitos com nomes que as pessoas podem realmente querer usar em seus modelos.
Ryan Hiebert
1
Se desejar, crie um método de propriedade para retorná-lo ... @property def table_name(self): return self._meta.db_table
Jcc.Sanabria