私はDjangoアプリケーションを開発しています。これは、物事をきれいに保つために複数のサブアプリケーションを必要とする大規模なシステムです。したがって、Djangoアプリであるトップレベルのディレクトリ(空のmodels.py
ファイルがあるため)と、それ自体がアプリケーションでもある複数のサブディレクトリがあります。
このようにアプリケーションをレイアウトした理由は、サブアプリケーションが分離されているためですが、親アプリケーションの外部で単独で使用されることはありません。したがって、それらを別々に配布することは意味がありません。
アプリケーションをインストールするとき、設定ファイルには次のようなものを含める必要があります。
INSTALLED_APPS = (
...
'myapp',
'myapp.subapp1',
'myapp.subapp2',
...
)
...これは明らかに最適ではありません。これには、すべてのサブアプリケーションを「内部」名(つまりsubapp1
、subapp2
など)で参照する必要があるというやや厄介な結果もあります。たとえば、subapp1のデータベーステーブルをリセットする場合は、次のように入力する必要があります。
python manage.py reset subapp1
これは厄介です。特に、core
-というサブアプリがあるためです。これは、アプリケーションがユーザーのプロジェクトにインストールされているときに、別のアプリケーションの名前と競合する可能性があります。
私はこれを完全に間違って行っているのでしょうか、それともこれらの「内部」アプリをフルネームで参照するように強制するのでしょうか。