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


101

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

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

Ответы:


179

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

model_instance._meta.db_table

это довольно странно, что имя таблицы модели доступно из защищенного атрибута_meta::Options
Alex-Bogdanov

5
@ Alex-Bogdanov: _metaимущество не охраняется. Это задокументированная часть общедоступного API. Перед ним стоит префикс подчеркивания, чтобы избежать конфликтов с именами, которые люди действительно могут захотеть использовать в своих моделях.
Райан Хиберт

1
Если хотите, создайте метод свойства, чтобы вернуть его ... @property def table_name(self): return self._meta.db_table
Jcc.Sanabria,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.