私は、さまざまなユーザーの役割を持つ最初の実際の django アプリケーションを構築していますが、通常の「UserProfile を作成するユーザー シグナル」アプローチでは不十分です。手伝ってくれませんか?
より多くのコンテキストを提供するために、機能的な観点からの要件は次のとおりです。
- 新しいユーザーは管理者からのみ追加され、技術に精通していない人が行うため、直感的で簡単なユーザー作成フローが必要です。
- 各ユーザーには、さまざまなニーズとフィールドを持つ役割 (マネージャー、従業員、セールスマンなど) があります。
- ユーザーリストには、ユーザー情報と役割/プロファイル情報 (ログイン、電子メール、名前、およびプロファイルの追加情報) の両方を表示する必要があります。
初期アプローチ:
これを武器に、ユーザーにリンクされた UserProfile 1 対 1 オブジェクトを作成するという推奨アプローチを採用し、ロールが設定されている選択肢フィールドを UserProfile に提供します (get_profile を呼び出すときに何を扱っているかを知るのに役立ちます)。 () ) UserProfile を ManagerUserProfile、EmployeeUserProfile などにサブクラス化します。
問題 :
これはフロントエンド (管理者の外) で私のニーズに合わせて機能しますが、ユーザーが作成されたときに UserProfile を作成するようにシグナルを設定することは無意味です。
私が目指しているのは、特定のユーザーを作成するアトミックな方法と、それに対応する EmployeeUserProfile/ManagerUserProfile を同時に作成し、適切な管理者を表現することです。
私のアイデアのいくつか:
UserAdmin および User Profile 管理者を非表示にし、EmployeeUserProfile/Manager/etc の AdminModel を作成し、User モデルをインライン化します。そうすれば、ユーザーを作成する人には、対応するフィールドを含む「新しいマネージャー」リンクのみが表示されます。しかし、ユーザーなしで UserProfile を作成することはできますか? どうすればこれをアトミックにできますか? プロファイルの保存を許可する前に、ユーザーが削除されないようにするか、必要な情報をすべて提供するようにするにはどうすればよいですか? -> このアプローチの問題: UserProfile への PK がないため、ユーザーをインライン化できないようです (逆です)。
ここでも、UserAdmin を非表示にし、サブクラス化されたプロファイル Admins を公開して、信号を逆にします。プロファイルが作成されたら、対応するユーザーを作成します。しかし、このためには、プロファイル管理フォームからユーザー フィールド (ユーザー名、パス、電子メールなど) を提供できる必要があります。
提案?
それは私の最初のアプリであり、おそらくこれにはきちんとした方法がありますが、まだ見つけていません.
これを読んでくれてありがとう。乾杯、ゼータ。