2017-11-15 4 views
2

Eventというモデルにスラッグnameというモデルがあります。私は基本的に私の他のすべてのモデルを別のアプリケーションにイベントに応じて分離するために私のDjangoアプリケーションを構成するために探しています。 ?たとえば、次のように私は孤立したアプリは、ユーザー、会議、および他の人のための私のモデルにのみ与えられたサブドメインのコンテキストで動作することを完成し作成する方法をDjango隔離されたサブドメイン

"http://annualmeetup.domain.com" # in the form of "http://{}.domain.com".format(e.name) 

私は、イベントごとに複数のアプリケーションを作成し、同じモデルをコマンドスクリプトでコピーすることを考えていましたが、アプリをサブドメインに向ける方法はまだ分かりません。

+1

組み込みの["sites" framework](https://docs.djangoproject.com/en/1.11/ref/contrib/sites/) –

+0

@HåkenLidを使用したことがありますか?あなたは例を示すことができますか? –

+0

私はそれに多くの経験がありません。 –

答えて

4

1つのオプションは、この目的のために設計されてdjango-tenant-schemasを使用することです:

Djangoはデータのみが異なる場合であっても、現在、同じプロジェクトのインスタンスを使用して複数のテナントをサポートするための簡単な方法を提供していません。

  • 複数の顧客が同じインスタンス
  • 共有し、テナント固有のデータ
  • テナント[表示] - 上で実行されている:私たちはあなたのプロジェクトの多くのコピーを実行したくないので、あなたが持っていることができるでしょう(すなわち、サブドメインマッピング)をルーティングすることは

これは、あなたが(あなたのケースでイベント、)各テナントに個別のデータベース・スキーマ、それ自身の孤立したモデルで、それぞれを持つあなたになります。あまりにも多くの努力をしなければ、その場でテナント(イベント)を作成することができます。ユースケースのように思えます。

ただし、テナントスキーマはPostgresでのみ動作します。

+0

はありますかsqliteの代替ですか? –

+3

なぜsqliteを使いたいのですか?実稼働環境のバックエンドではありません。 https://sqlite.org/whentouse.html –

0

イベントごとに別々のアプリを書く必要はありません。各イベントが同じスキーマを共有する場合は、アーキテクチャを作成するだけでよいでしょうMultitenant

ここではすべてのパッケージが利用可能です。 Link here

私は個人的にはdjango-hostsをお勧めしますが、データ分離機能はありません。既に既存のプロジェクトがあり、マルチテナントを導入したい場合には、これは良いことです。しかし、プロジェクトを始めたばかりならば、django-tenancyは素晴らしい選択肢です。

関連する問題