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.

Respostas:


179

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

model_instance._meta.db_table

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.