【Django】アプリケーションをディレクトリにまとめた時の設定変更箇所
Django でアプリを複数作っていくとルートディレクトリが見づらくなっていく。
. ├── accounts ├── manage.py ├── posts
そこで、app ディレクトリを作成し、その中にアプリを入れる形をとってみた。
.
├── app
├── accounts
├── posts
├── manage.py
それに伴い、いくつか設定を変えなければいけない部分があったので、メモしておく
アプリケーションの設定変更
今回は posts を例に出して進めていく。
まずはapp/posts/apps.pyを変更する。
ルートディレクトリに作成した時は、次のようになる。 name がアプリケーション名になっている。
from django.apps import AppConfig
class PostsConfig(AppConfig):
name = "posts"
app ディレクトリ配下に作成した時は、次のようになる。 name がルートディレクトリに作成したときと変わっている。 app は posts から見た親ディレクトリを指していて、ドットで階層を表している。 つまり、name の部分に親のディレクトリも記述するようになる。
from django.apps import AppConfig
class PostsConfig(AppConfig):
name = "app.posts"
アプリケーション側の設定は以上になる。 アプリケーションが変わったことにより、それを読み込む settings.py も変更が必要になる。
settings.py の設定変更
作成直後にアプリケーションを読み込む設定は何も書かれていないけど、ルートディレクトリに作成した時は、次のように設定することが多い。
INSTALLED_APPS = [
"""
(中略)
"""
"posts.apps.PostsConfig",
]
app ディレクトリ配下に作成した時は、settings.py の INSTALLED_APPS が次のようになる。
ここでもapp.を付けて、親フォルダとディレクトリを示すドットを付ける。
INSTALLED_APPS = [
"""
(中略)
"""
"app.posts.apps.PostsConfig",
]