2014-06-09 37 views
0
from django.db.models import get_model 
modelname=get_model('base','reports') 

上述代碼在views.py和django的殼細,但是從INIT稱爲的.py從__.init__.py調用時,django get_model返回null?

文件夾結構如下所示

projectsfolder

--base時返回null

----models.py

---- vie ws.py

---- 初始化的.py

回答

0

我仍然不知道爲什麼我的代碼不能正常工作@__init__ .py.But下面的代碼爲我工作。

modelname=get_model('base', k['tablename'], seed_cache=False, only_installed=False). 

另外django fixtures是一個更好的方式來初始化數據庫。 :) :)

0

這不可能工作。 __init__.py中的任何內容總是在第一次導入該目錄中的任何內容時執行。但是Django必須導入模型才能註冊它們,所以你已經陷入了雞與雞蛋的情況:在它們導入它們之前它不會註冊它們,但是你試圖在模型被注入時纔會得到它們,重新進口......

你能解釋一下爲什麼你不簡單地做from models import Reports

+0

我可以直接導入Reports或任何其他模型。但我真正想要的是根據存儲在變量中的值動態獲取模型。我非常需要get_model()來工作。:( – jithin

+0

但爲什麼你需要它在'__init __。py'中完成?請給你實際的用例 –

+0

我想初始化數據庫與數據存儲爲字典object..on服務器啓動。它工作時,我手動調用我的數據庫models.now我必須動態調用表並更新它們。要獲得這些模型,我需要使用get_model() – jithin

相關問題