私は現在、ユーザーが複数の「アカウント」を持つことができるDjangoサイトを開発しています。これにより、ユーザーはサイトを介して対話するときに、異なるパブリックプロファイルをシームレスに切り替えることができます。私が設計しているものは、1人あたり複数の登録を引き付ける可能性があります(そして落胆することはありません)。ユーザーがプロファイルを結び付けて簡単に切り替え、ログに記録するだけで済むように、これを提供したいと思います。一度に。
私がこれまでに考えた2つのアプローチは次のとおりです。
1人あたり1組(
User
モデル+SiteProfile
モデル)と多数のPublicProfile
モデル。モデルAUTH_PROFILE_MODULE
を指すように設定されています。SiteProfile
これに関する問題は、オブジェクトごとのアクセス許可を簡単に使用できないことです。これらはUser
、パブリックプロファイルではなくオブジェクトに設定されるため、ユーザーが次のようにマスカレードしている場合にも、「PublicProfileA」のページを表示するアクセス許可が適用されます。 「PublicProfileB」。1人につき1つの
Account
モデルと多くの(User
モデル+UserProfile
モデル)ペア。モデルAUTH_PROFILE_MODULE
を指すように設定されています。これには、アクセス許可が意図したとおりに機能するという追加の利点があり、ユーザーが外部キーUserProfile
と同じオブジェクトを持つ別のユーザーとして現在ログインしているかどうかによってユーザーを認証することでユーザーを切り替えるカスタムバックエンドを簡単に作成できます。ただし、Account
認証はオブジェクトのフィールドを読み取ることによって行われます。つまり、すべてのオブジェクトのフィールドが無駄になります。Account
password
User
上記と同じですが、
Account
からサブクラス化しUser
ます。しかし、私はこれに対して強くアドバイスされています(理由は不明です)。
これに対する落とし穴やより良いアプローチはありますか?最終的に、組み込みUser
モデルを、公開されているプロファイルのグループを識別する1人あたりのモデルとして使用するか(これらのプロファイルにはUser
オブジェクトへのFKが含まれています)、それをプロファイル自体として使用して、リンクバックする必要があります。一人一人の単一のAccount
オブジェクトに?