1
我在當前的django項目中導入模型在我的應用程序之間導入問題。當試圖運行開發服務器或同步數據庫,我收到錯誤:模型導入在django(循環導入?)中的應用程序之間失敗
File "/path/to/Project/../Project/app1/models.py", line 3, in <module>
class SomeModel(Thing):
NameError: name 'Thing' is not defined
的事情是在項目定義/主/ models.py我導入項目/ APP1/models.py通過:
from project.main.models import Thing
我知道,這樣的事情可能是蟒蛇防止圓形進口的結果。
目前我有三個Django的應用程序:主,APP1,APP2
每個應用程序的進口,像這樣:
主:
from project.app1.models import AnotherThing
APP1:
from project.main.models import Thing
app2:
from project.main.models import Thing
from project.app1 import Something
我懷疑來自APP1 APP2到進口車型是造成問題,因爲這兩個這些應用程序導入模型,從主,這反過來進口APP1模型等
如果是這樣的話 - 什麼其他我可以使用哪些方法來達到與這些導入相同的效果? 是否有一種更爲接受的組織方式,以便我不會遇到這種情況?
我假設你不能使用字符串的子類? I.e: class Model('project.main.Parent'): – WilHall
@WilHall:不,你不能。 –
我認爲我有一種錯誤的印象,認爲應用程序可能被用於分離彼此交互的代碼 - 但顯然這不是最好的方法,因爲它會導致需要進行此類導入。我重新修改了我的應用程序以使其更獨立。 – WilHall