2011-08-31 35 views
3

在輸入提示時是否有片段或簡單的方式導入所有的django表?自動導入manage.py shell中的所有數據表

例如,通常我的命令去是這樣的:

>>> 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 
... 

你會得到,雖然完全合格的名稱; userprofile.models.Table而不是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_auto_created =假include_deferred = FALSE) 文檔字符串: 給出一個包含模型模塊,返回模型的列表。 否則返回所有安裝模型的列表。

默認情況下,不包括自動創建的模型(即沒有0​​顯式中間表的m2m模型)。但是,如果你指定了include_auto_created = True,他們將會是。

默認情況下,爲滿足延遲屬性 查詢而創建的模型是包含在模型列表中的而不是。但是,如果 指定了include_deferred,它們將會是。

相關問題