私はしばらくの間、最近成長しているDjangoプロジェクトに取り組んでいます。処理を容易にするためにどのような戦略を使用するかについて少し考えていました。いくつかの入力を取得するには、アプリケーションをいくつかの小さなアプリケーションに分割する必要があります。
これで私を悩ませていることの1つは、私のアプリケーションで、アプリケーション全体で使用されるいくつかのヘルパーメソッドがあることです。また、一部のモデルもアプリケーション間で共有/使用する必要があります。これは理にかなっていますか?これは、アプリをいくつかの小さなアプリに分割することで実現したいと考えていた懸念の分離にはうまくいきません。アプリケーション間でヘルパーメソッド、モデルなどを共有するための良いアプローチは何でしょうか?
プロジェクトが大きくなっている場合は、アプリを再利用可能なモジュールと考えてください。アプリ間で共有される機能を独自のアプリに分離できます。
この問題に関するより多くの考えについては、以下の議論を参照してください。
共有されたコンテンツのビューも瞬間もない_base/
_アプリを作成するのが好きです。
モデルが複数のアプリに分散している場合に発生する可能性がある問題の1つは、循環インポートです。これは、文字列を使用して他のモデルを参照することで回避できます(foo = ForeignKey("someapp.Foo")
ではなくfoo = ForeignKey(someapp.models.Foo)
)。 Djangoでは、このような文字列をより多くの場所で使用できます。