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
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
我仍然不知道爲什麼我的代碼不能正常工作@__init__ .py.But下面的代碼爲我工作。
modelname=get_model('base', k['tablename'], seed_cache=False, only_installed=False).
另外django fixtures是一個更好的方式來初始化數據庫。 :) :)
這不可能工作。 __init__.py
中的任何內容總是在第一次導入該目錄中的任何內容時執行。但是Django必須導入模型才能註冊它們,所以你已經陷入了雞與雞蛋的情況:在它們導入它們之前它不會註冊它們,但是你試圖在模型被注入時纔會得到它們,重新進口......
你能解釋一下爲什麼你不簡單地做from models import Reports
?
我可以直接導入Reports或任何其他模型。但我真正想要的是根據存儲在變量中的值動態獲取模型。我非常需要get_model()來工作。:( – jithin
但爲什麼你需要它在'__init __。py'中完成?請給你實際的用例 –
我想初始化數據庫與數據存儲爲字典object..on服務器啓動。它工作時,我手動調用我的數據庫models.now我必須動態調用表並更新它們。要獲得這些模型,我需要使用get_model() – jithin