企業、管理者、外部の人々など、さまざまな種類のユーザーを許可するDjangoアプリケーションがあります。もちろん、これらはすべて、デフォルトの認証システムとグループで簡単に管理できます。
私の問題は、さまざまなグループに属するユーザーがさまざまな関連情報を持っていることです。たとえば、企業は個人ユーザーには意味のない商用情報を提供する必要があります。したがって、グループに応じて、さまざまな種類のプロファイルを添付する必要があります。(私のアプリケーション グループでは、相互に排他的です。)
残念ながら、Django ではプロファイルとしてアタッチできるモデルは 1 つだけであり、そのモデルは で宣言されていsettings.AUTH_PROFILE_MODULE
ます。内部的には、User.get_profile()
メソッドによって取得されます。メソッドは基本的にこの値を読み取り、モデルが実際に存在するかどうかなど、いくつかのチェックを実行します。
グループに応じて異なるモデルを返すように、メソッドをサブクラス化User
してオーバーライドすることを考えていました。get_profile()
さまざまな種類のプロファイルを管理するための、よりシンプルでクリーンな方法はありますか?
User のサブクラス化を避けるためにユーザー プロファイルが導入されたことを考えると、私が提案していることはちょっとしたハックのように思えます。