これらの関数の定義を別のパッケージ (またはアプリでしょうか?) に入れる予定です。
これをアプリにすることを決定する前に (そしてアプリにすることを決定する場合)、再利用可能なアプリの開発に関するジェームズ・ベネットの基調講演と、アプリケーションのレイアウトに関する過去の投稿を参照することをお勧めします。彼のスライドの 1 つから:
これは独自のアプリケーションである必要がありますか?
- それは私がやっていることと直交していますか?
- 他のサイトでも同様の機能が必要ですか?
- はい?次に、別のアプリケーションに分割する必要があります。
1 つの汎用アプリに機能を詰め込みすぎている場合は、汎用アプリを複数の再利用可能なアプリに分割することをお勧めします。
元の質問に戻ると、Django はmodels.py
すべてのアプリでファイルを期待しています。したがって、ファイルが空であってもファイルが必要です。
内にmodels.py
は、アプリケーションのモデル クラスのみを含める必要があります。models.py
したがって、再利用したいさまざまなコードを内部に入れると、ベスト プラクティスに従っていることにはなりません。
前に述べたアプリケーションのレイアウトの投稿から:
アプリケーション レベルでは、アプリケーションが何を使用するかに応じて、通常、さらにいくつかのファイルをドロップします。
- アプリケーションでカスタム マニピュレータを定義する場合は、それらをビュー ファイルではなく、forms.py というファイルに配置します。
- アプリにカスタム マネージャーが複数ある場合は、models ファイルではなく、managers.py というファイルに配置します。
- カスタム コンテキスト プロセッサを定義する場合は、context_processors.py というファイルに配置します。
- カスタム ディスパッチャ シグナルを設定する場合、それらは signal.py というファイルに格納されます。
- アプリケーションがシンジケーション フィードを設定している場合、フィード クラスは feeds.py というファイルに格納されます。同様に、サイトマップ クラスは sitemaps.py に入ります。
- ミドルウェア クラスは、middleware.py というファイルに格納されます。
- 明らかに他の場所に移動しない雑多なコードは、utils というファイルまたはモジュールに移動します。
これらすべてが、元の質問に直接答えているわけではありません。
「一般的な」アプリ ディレクトリに general.py ファイルを作成し、models.py を空のままにすることはできますか?
ただし、これにより、プロジェクトと要件により適した決定を下すための追加情報が得られることを願っています.