これは非常に単純な原則です。サイトを定義するサイト モデルがあり、モデルでこのモデルを参照します。たとえば、ブログ アプリケーションを作成すると、次のようになります。
サイト モデル:
ID | domain | name
1 | site-a.example.com | John's blog
2 | site-b.example.com | David's blog
ブログ記事:
ID | site_id | title | ...
1 | 1 | Some title for John's article | ...
2 | 1 | Another post by John | ...
3 | 2 | David's blog post | ...
これは Web サーバーにどのように展開されますか? ブログ アプリのコードはすべてのブログで同じなので、サイト a とサイト b のインストールでインポートできる Python パスのどこかに配置します (通常、virtualenv を作成し、そこにブログ アプリをインストールします)。ここで、両方のドメイン (site-a.example.com と site-b.example.com) に 2 つの仮想 Web を作成し、サイトごとに個別の django プロジェクトを作成します (これは、通常のプロジェクトというよりもサイト プロファイルに似ています)。では、どのプロジェクトがどのブログのものか、どうすればわかりますか? そのようなブログのサイト ID を指すすべてのプロジェクト設定で SITE_ID 定数を定義し、特定のブログのすべての記事を一覧表示するには、現在のサイトをフィルター条件に追加します。