모델 인스턴스의 데이터베이스 테이블 이름을 읽는 방법은 무엇입니까?


101

모델의 인스턴스 객체가 주어지면 데이터베이스 테이블의 이름을 어떻게 얻을 수 있습니까?

Meta 클래스에서 명시 적으로 이름을 지정하고 싶지 않습니다.

답변:


179

직접 답을 찾았습니다. 인스턴스의 _meta 속성에는 다음 정보가 있습니다.

model_instance._meta.db_table

이것은 매우 이상한 보호 된 속성에서 액세스 모델의 테이블 이름_meta::Options
알렉스 - 보그

5
@ Alex-Bogdanov : _meta재산은 보호되지 않습니다. 공개 API의 문서화 된 부분입니다. 사람들이 실제로 모델에서 사용하고 싶어하는 이름과의 충돌을 피하기 위해 앞에 밑줄이 붙습니다.
Ryan Hiebert

1
당신이 좋아하면, ...을 반환하는 속성 메소드를 생성 @property def table_name(self): return self._meta.db_table
Jcc.Sanabria
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.