django startapp api
を使用してAPIと呼ばれるアプリケーションを作成しました。私はその後、settings.py(app/settings.py
)に私のメインアプリケーション(app
)から、このアプリをロード:サブモジュール用Django - INSTALLED_APPS
INSTALLED_APPS = [
...
'api.apps.ApiConfig',
...
]
これは素晴らしい作品!次に、apiフォルダ(api/settings.py
)に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'の依存関係をロードする必要はないのですか? –
'api.apps.ApiConfig''(ひどいCamelCase)と' 'rest_framework''の両方を' INSTALLED_APPS'に追加する必要があることを明確にする方法であなたの 'api'アプリケーションを文書化するべきです。再利用可能なアプリやフレームワークがたくさんあり、正しく動作するには複数のアプリを 'INSTALLED_APPS'に追加する必要があります。 – schwobaseggl