2016-06-02 2 views
0

장고 (1.9)에서 일부 원시 원시 SQL을 실행해야합니다. Django의 테이블에는 응용 프로그램 이름이 접두어로 붙어 있으므로 응용 프로그램 이름을 검색해야합니다. 나중에 다른 응용 프로그램에서 같은 코드를 사용하고 싶습니다. 그래서 코드가있는 파일 만 주어진 부드러운 코딩 방식으로 응용 프로그램 이름을 얻고 싶습니다.이 작업을 수행하는 가장 좋은 방법은 무엇입니까?Django는 파일에서 앱 이름을 가져옵니다.

답변

4

기본 규칙을 사용하여 테이블 이름을 "추측"하는 대신 Model.objects.model._meta.db_table을 사용하여 실제 이름을 가져와야합니다.

모델은 기본 테이블 이름 규칙을 무시하고이 코드의 재사용 성을 깰 것입니다 ...

+1

는'Model.objects.model'은 Model''에 대한 참조입니다. 'Model._meta.db_table'을 사용할 수 있습니다. – knbk

+0

큰 포인트! 프리픽스를 가져 오기 위해'Model._meta.db_table.split ('_') [0]'과 같은 간단한 것을 제안 해 주시겠습니까? – Jarno

+2

@jarno 그렇게하지 않으면'db_table'이 밑줄이없는 것으로 변경되면 깨질 것입니다. 앱 이름을 원한다면 ['MyModel._meta.app_label'] (https://docs.djangoproject.com/en/1.9/ref/models/options/#app-label) – Alasdair

관련 문제