我使用django startapp api
創建了一個名爲API的應用程序。然後我在settings.py(app/settings.py
)加載該應用從我的主要應用程序(app
):Django - INSTALLED_APPS子模塊
INSTALLED_APPS = [
...
'api.apps.ApiConfig',
...
]
這個偉大的工程!然後,我在api文件夾中創建了一個settings.py文件(api/settings.py
)。我想從這個子模塊中加載一個名爲rest_framework
的模塊(由於可重用性)。所以api/settings.py
文件包含以下內容:
INSTALLED_APPS = [
'rest_framework'
]
的rest_framework
模塊,但是,是不是當我運行的應用程序加載。我發現下面的解決方法(對於app/settings.py
):
from api.settings import INSTALLED_APPS as API_APPS
INSTALLED_APPS += API_APPS
我覺得這不是在所有子模塊的主應用程序加載INSTALLED_APPS
的最佳途徑。有沒有更好的方法加載所有子模塊INSTALLED_APPS
?
2個應用應該完全相互獨立。看起來你在混合依賴關係,這可能不是你想要的。 –
準確。這就是爲什麼我問:-)。 'api'應用程序依賴於'rest_framework',主應用程序('app')依賴於'api'應用程序。那麼我怎樣才能確保我不需要在'app'的'settings.py'中加載'api'依賴? –
你應該以一種明確表示需要在其INSTALLED_APPS中添加''api.apps.ApiConfig''(可怕的CamelCase)和''rest_framework''的方式記錄你的'api'應用。有很多可重複使用的應用程序和框架,需要將多個應用程序添加到INSTALLED_APPS才能正常工作。 – schwobaseggl