2016-05-15 75 views
0

我曾與django 1.7合作過,最近用django 1.9開始了新項目。與開始一個新應用程序的主要區別在於新應用程序是使用apps.py文件創建的。我讀了,現在你有django docs使用Django 1.9找不到newapp

INSTALLED_APPS = [ 
    'newapp.apps.NewAppConfig', 
    ... 
] 

(舊剛剛'newapp'

在我的新項目,我有我的一個名爲「安裝MyApps」新目錄中的所有應用程序。 但是,如果使用 'myapps.newapp.apps.NewAppConfig' 比Django的提示錯誤ImportError: No module named newapp 但是,如果我用老辦法即

INSTALLED_APPS = [ 
    'myapps.newapp', 
    ... 
] 

比它完全沒有錯誤,但在apps.py文件CONFIGS可能不會應用(我不知道它是如何工作的)。

那麼在django 1.9的INSTALLED_APPS設置中,如果在apps.py配置文件中的「myapps」等所有新應用程序也可以工作,那麼哪種方法可以將newapp放入INSTALLED_APPS設置?

+0

你不 「要」 用它。舊方法myapps.newapp同樣有效。只有使用更長的版本,如果你需要在'apps.py'運行的東西。 – C14L

+0

@ C14L是的,我明白你不必但那是我的問題,如果我將來需要使用apps.py,我只是由於我的目錄結構,無法使用該功能。 –

+0

你的'newapp'目錄是否包含'__init __。py'? –

回答

1

如果你的應用程序目錄是在myapps目錄,然後檢查以下內容:

  1. myapps目錄下應該有一個__init__.py

  2. 在路徑中包含myapps當您在INSTALLED_APPS應用,即'myapps.newapp.apps.NewAppConfig',

  3. 在應用程序conf中包括myapps IG的name屬性:

    class NewAppConfig(AppConfig): 
        name = 'myapps.newapp' 
    
+0

謝謝你。我錯過了第三點......我在apps.py中有name ='newapp',這導致了所有問題。 –

0

如果您的應用程序位於「myapps」目錄中,則仍需將其包含在路徑中:"myapps.newapp.apps.NewAppConfig"

+0

正如我在問題中所說的使用「myapps.newapp.apps.NewAppConfig」給出的ImportError:No module named newapp –