2

背景情報:

会社の内部サイトを作成しました。ほとんどの作業は、営業担当者がクライアントにオファーを出すために使用できる計算ツールの作成に費やされました。ダウンロード可能な PDF オファーと契約書を作成し、価格などを比較します。これらはすべて正常に機能しています。

現在、販売担当者は 2 つのグループに分けられています。

  1. 1 つのグループは、会社によって雇われている販売の個人です。
  2. もう 1 つのグループは、企業自体である個人です。

質問:

今の私の課題は、営業担当者のタイプに応じて異なるものを表示する必要がある場合があることです。計算ツールのルールの中には、許可される数値などに関して異なるルールがあるものもあります。しかし、サイトの大部分は、両方のグループで同じままです。

私が知りたいのは、この問題を処理する良い方法があるかどうかです。

私自身の考え:

contrib.auth で利用可能なグループを使用してこれを管理することを考えました。そうすれば、単一のコード ベースを保持できますが、さまざまな場所でルールを作成する必要があります。入力された番号が許可されているかどうかを確認するためにフォームを検証するためのルールは、ユーザーが属するグループによって異なります。名前が異なるものや、ワークフローが少し異なるものもあります。一部のツールは、グループの 1 つだけが使用できます。これは今のところ簡単な解決策のように思えますが、2 つのグループがさらに変更する必要がある場合、これはすぐに管理が難しくなるようです。

また、2 つの異なるサイトを作成することも考えました。ここでのアイデアは、両方のグループが使用するアプリを作成することだったので、その 1 つの場所のコードを作成するだけで済みます。その後、各サイトのカスタム パーツを作成でき、ほとんどのテンプレートとビューでユーザーを確認する必要がなくなります。しかし、これが物事を進める良い方法かどうかはわかりません。多くの余分な作業が発生します。2 つのグループが同じコードを大量に使用できる場合、これは実際には必要ないかもしれません。

最大の懸念は、これがどのように進化するのかよくわからないため、2 つのグループがまったく異なるものになるか、ごくわずかな違いしかないという結果になる可能性があることです。私がやりたいことは、両方のシナリオをサポートできるコードを書いて、今から半年後に自分の選択を後悔しないようにすることです.

では、ユーザー管理のこのケースをどのように処理しますか。既製のソリューションではなく、この問題に対処するアイデア テクニックまたは再利用可能なアプリを探しています。

説明:

私の問題は、テンプレートを使用して実行できる純粋なプレゼンテーションではありませんが、特定の計算ツール (入力されるフォーム) には異なるルール/検証が適用され、場合によっては実行される計算も異なります。そのため、同じフォームが表示されても、同じ数字を入力することは許可されず、同じ数字でも同じ結果が得られない可能性があります。

4

2 に答える 2

1

django に同梱されているおよびモデルでプロキシ モデルを使用できます。GroupUser

次に、プロキシ モデル内に承認と計算のメソッドを記述します。後で新しいグループが追加された場合、これら 2 つのプロキシ モデル内のメソッドを追加/変更するだけで済みます。次に、Group と User のすべてのインスタンス (文字通りすべてではなく、明らかに必要な場合のみ) に、実際の contrib モデルではなくプロキシ モデルを見つけさせます。

于 2010-02-22T14:24:35.063 に答える
0

私の理解が正しければ、2 つの異なるグループがすべて同じビューにアクセスできるようにしたいと思われますが、異なる番号が表示されます。この効果を得るには、グループごとに個別のテンプレートを作成し、現在のユーザーのグループに応じてビューごとに適切なテンプレートをロードします。

同様に、コンテキスト プロセッサを使用して、現在のグループをすべてのビューのコンテキストに配置し、テンプレートに条件を配置して、表示する数値を選択できます。

もう 1 つのオプションは、2 つの異なるグループに対して 2 つの別個のビュー セットを用意することです。次に、ビューでデコレーターを使用して、グループがそれらのビューにのみ移動するようにします。

于 2010-02-22T15:07:58.900 に答える