Как прочитать имя таблицы базы данных экземпляра модели?

101

Учитывая объект экземпляра модели, как я могу получить имя таблицы базы данных?

Я не хочу явно указывать имена в классе Meta.

Ber
источник

Ответы:

179

Я сам нашел ответ: атрибут _meta экземпляра содержит информацию:

model_instance._meta.db_table
Ber
источник
это довольно странно, что имя таблицы модели доступно из защищенного атрибута_meta::Options
Alex-Bogdanov
5
@ Alex-Bogdanov: _metaимущество не охраняется. Это задокументированная часть общедоступного API. Перед ним стоит префикс подчеркивания, чтобы избежать конфликтов с именами, которые люди действительно могут захотеть использовать в своих моделях.
Райан Хиберт
1
Если хотите, создайте метод свойства, чтобы вернуть его ... @property def table_name(self): return self._meta.db_table
Jcc.Sanabria,