モデルインスタンスのデータベーステーブル名を読み取る方法は?


101

モデルのインスタンスオブジェクトが与えられた場合、データベーステーブルの名前を取得するにはどうすればよいですか?

Metaクラスで明示的に名前を指定したくありません。

回答:


179

自分で答えを見つけました:インスタンスの_meta属性には情報があります:

model_instance._meta.db_table

これは、保護された属性からモデルのテーブル名にアクセスできるというのはかなり奇妙です_meta::Options
Alex-Bogdanov

5
@ Alex-Bogdanov:_metaプロパティは保護されていません。これは、公開APIの文書化された部分です。モデルで実際に使用する可能性がある名前との競合を避けるために、先頭に下線が付いています。
Ryan Hiebert

1
必要に@property def table_name(self): return self._meta.db_table
応じて、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.