2011-06-24 85 views
1

好的 - 我已經與Django合作了幾個月,並且遇到了一個奇怪的問題。設置它,這是我的webapp結構。Django導入模型

主Django項目名爲cpm。 我在cpm文件夾中有一堆django應用程序。在每個應用程序中,我有我的models.py文件。

現在,當我想創建/使用的模型從其他應用我會做這樣的事情:

from cpm.products.models import * 

假設名爲products的應用程序存在。最近,我開始出現一些錯誤,如cannot import XYZ from products。於是,經過一番搜索,我改了行:

from cpm.products.models import * 

from products.models import * 

我只是放棄了cpm.一部分,現在它的工作原理。

有人可以告訴我爲什麼會發生這種情況嗎?它似乎只發生在我的部分應用程序上(我在CPM項目中有一堆)。我希望確保我的語法是準確的,因爲我前進。

謝謝!

回答

5

項目的根目錄已從python路徑的某處移除,或者您從根目錄中刪除了__init__.py文件。

在一個側面說明,進口*會導致問題,尤其是當你開始添加大量的應用程序。考慮做from products import models as prod_models。然後做prod_models.MyModel你需要參考你的模型。

+0

有趣。我今晚創建了一個新應用程序(./manage startapp),並注意目錄中沒有「舊」應用程序目錄中存在的文件__init.py__。這是你指的是什麼? 感謝您提供模型導入的提示。我一定會改進我的代碼。 – Garfonzo