2011-08-31 3 views
3

프롬프트를 입력 할 때 미리보기를 사용하거나 내 장고 테이블을 모두 가져올 수 있습니까? 최대한 빨리 프롬프트를 입력, 나는 이미 가져온 테이블이있을 것이다,manage.py 쉘에서 모든 db 테이블을 자동으로 가져 오기

>>> from userprofile.models import Table 
>>> Table.objects... 

이 방법 :

예를 들어, 일반적으로 내 명령은 다음과 같이 이동합니다. 고맙습니다.

답변

0

이 작업을 수행 할 수 있습니다

>>> from django.conf import settings 
>>> for app in settings.INSTALLED_APPS: 
... module = __import__(app) 
... globals()[module.__name__] = module 
... 
당신은 비록 완전한 이름을 얻을 것이다

; Table 대신 userprofile.models.Table입니다.

1
from django.db.models import get_models 
for _class in get_models(): 
    globals()[_class.__name__] = _class 

그러면 설치된 모든 모델이 전역 적으로 사용 가능해 지므로 클래스 이름으로 참조하십시오. 추가 정보를 원하시면 django.db.models.get_models에 대한 문서를 읽어

정의 : get_models 문서화 문자열 (자기, app_mod = 없음 = 거짓 include_deferred = 거짓 include_auto_created 없음) : 모델을 포함하는 모듈을 감안할 때, 모델의 목록을 반환합니다. 그렇지 않으면 설치된 모든 모델의 목록을 반환합니다.

기본적으로 자동 생성 모델 ( 명시 적 중간 테이블이없는 m2m 모델)은 포함되지 않습니다. 그러나 을 지정하면 include_auto_created = True로 지정됩니다.

지연된 속성 쿼리를 충족시키기 위해 만들어진 모델은 기본적으로 모델 목록에 포함 된 이 아니며입니다. 그러나 을 지정하면 include_deferred가 지정됩니다.

관련 문제