主なガイドラインは、他の大規模なコード プロジェクトと同様です。アプリは、明確に定義された単一の責任に対処する必要があります。「アプリケーション」という名前は誤称です。Django アプリは、プラグインして実際のアプリケーションを作成できる再利用可能なコンポーネントと考える必要があります。各アプリのテストは、そのアプリ内に含める必要があります。アプリは可能な限り互いに分離する必要がありますが、明らかに依存関係が存在するため、依存関係グラフをできるだけシンプルで健全な状態に保つことを目標にする必要があります。
私は、プロジェクトのすべてのテンプレートを単一のプロジェクト全体のテンプレート ディレクトリの下に保持し、アプリごとにサブディレクトリを保持することを好みます (アプリごとにテンプレート サブディレクトリを使用することは、アプリ間のテンプレート名の衝突を回避するため、Django では非常に強力な規則です)。 . プロジェクト全体で 1 つのテンプレート ディレクトリを使用する理由は、テンプレート、テンプレート継承ツリー、およびブロック名がプロジェクト固有のものになる可能性があるためです。そのため、任意のプロジェクトにプラグインできる "既定の" アプリ テンプレートを提供することは困難です。基本的なサイト全体のテンプレートとそれらが定義するブロックの標準的な命名規則に落ち着く試みがいくつかありましたが、私はまだ標準が出現するのを見たことはありません ( Pinaxでのやり方はおそらく私たちが持っている方法に最も近いものです)標準)。
「文字列の外部化」に関して、i18n と l10n を意味する場合、Django はそれを強力にサポートしており、.po ファイルを配置する標準的な場所もあります - docsを確認してください。