13

私が取り組んでいるプロジェクトの攻撃計画を作成するのに役立ちます。

このサイトは、世界中に分散している地域の営業所を監督するグループのものであると想像してください。このプロジェクトの目的は、スーパーユーザーがすべてのオフィスに固有の新しいサブサイトを速いペースで作成できるようにすることです。サイトは頻繁に追加されます。オフィス サブサイトは、そのサブサイトに固有の「管理者」ユーザーに完全に含まれている必要があり、ユーザー フレンドリーな CMS である必要があります。スーパーユーザーは、これらすべてのオフィス サブサイトに介入して管理できる必要があります。

自己完結型のオフィス サブサイト インスタンスに加えて、各サブサイトで連絡先や見込み客などを管理し、スーパーユーザー用の 1 つの中央エリアに保存する必要もあります。

私は Django を使用していくつかのサイトを作成しましたが、マルチテナントではありません。使用するテクノロジ、または役立つチュートリアル/ドキュメントについての提案をお願いします。

要件:

  1. 各サブサイトは同じソース (テンプレート、JS、利用可能な機能など) を使用しますが、テンプレート内のカスタム コンテンツを反映するように変更できます。
  2. ハードコーディングされた設定ファイルではなく、プロジェクト内で構成された、サブサイトごとに割り当てられたサブドメイン (完全修飾ドメインを使用するオプションあり)。
  3. すべてのサブサイトにアクセスできるスーパーユーザーに加えて、サブサイト固有のユーザー アクセス制御。
  4. 各サブサイトに「独立した」CMS を提供する機能。つまり、サブサイトの管理者は自分のコンテンツのみを表示します。このプロジェクトの私の好みは django-cms ですが、提案は受け付けています。
  5. すべてのサブサイトからのデータをプールするアプリをサポートしますが、サブサイトの "管理者" はそのアプリでレコードを表示するだけに制限します。

上記を考慮して、どのアプローチをお勧めしますか? 私はテクノロジーを再検討することにはオープンですが、Python にこだわりたいと思っています。

4

4 に答える 4

5

迅速で汚い回答で申し訳ありませんが、マルチテナンシーを実現するために行ったことを共有します。

  • django-tenancy「動的モデル」を使用する著者のアプローチが好きです
  • django-dynamicsiteこれは、ドメインに基づく動的 SITE_ID がテナントにリンクされる場所です

上記の両方のライブラリを組み合わせると、マルチテナントで柔軟な django インスタンスを提供できます。ここでいう柔軟性とは、「テナント」であれ「グローバル」であれ、任意のモデルを定義できるということです。そのため、グローバル ユーザーのサイトを持つことができますが、テナント製品カタログごと、またはテナント + 製品ごとです。私が試した多くのdjangoアプリから、これはマルチテナンシーを実現する最も柔軟な方法です

于 2013-11-25T02:55:42.063 に答える
3

Django ベースの CMS Mezzanineには、マルチテナンシー サポートもあります。

サブサイトのユーザーコントロールを除いて、あなたが要求したほとんどの機能を備えています。管理者ページは、管理者ユーザー用のサイトごとに分けることができますが、通常のユーザーはできません。

ただし、CMS が必要ない場合、これはユースケースにとってやり過ぎかもしれませんが、完全を期すためにここで言及したいと思います。

于 2015-02-04T18:02:21.633 に答える