私は現在、ユーザーが複数の「アカウント」を持つことができるDjangoサイトを開発しています。そのため、サイトを介して相互作用するときに、異なるパブリックプロファイルをシームレスに切り替えることができます。私が設計しているのは、1人につき複数の登録を引き付ける可能性が高いからです(落胆させたくありません)。私はちょうど、プロファイルをつなぎ合わせて、簡単に切り替えることができ、ログをとるだけの方法でこれを提供したいと思います一度に私がこれまでにアップ考えたDjangoマルチユーザログイン - 最善の方法ですか?
2つのアプローチが含まれます:
ワン(
User
モデル+SiteProfile
モデル)のペアと一人あたりの多くのPublicProfile
モデル。AUTH_PROFILE_MODULE
はSiteProfile
モデルを指すように設定されています。これは、オブジェクト単位のアクセス許可を簡単に使用できないということです。これらは、公開プロファイルではなくUser
オブジェクトで設定されるため、「PublicProfileA」のページを表示する権限は、ユーザーがマスカレードしているときにも適用されます"PublicProfileB"とします。1人あたり
Account
モデルと多数(User
モデル+UserProfile
モデル)のペア。AUTH_PROFILE_MODULE
はモデルを指すように設定されています。これにより、意図したとおりに動作するアクセス許可の利点が得られます。また、外部キーと同じAccount
オブジェクトを持つ別のユーザーとして現在ログインしている場合にユーザーを認証してユーザーを切り替えるカスタムバックエンドを使用できます。しかし、Account
オブジェクトのフィールドを読み取ることで認証が行われるため、User
オブジェクトのpassword
フィールドが無駄になります。上記と同様ですが、サブクラス
Account
はUser
です。私はこれに対して強くアドバイスされてきました(不明な理由のため)。
これにはどんな落とし穴がありますか?最終的には、組み込みのUser
モデルを、パブリック向きのプロファイルのグループ(これらのプロファイルはUser
オブジェクトに戻っている)を識別する1人当たりモデルとして使用するか、それをプロファイル自体として使用するか、一人一人のために単一のAccount
オブジェクトに戻ってリンクしていますか?
興味深い質問です。これらの異なるプロファイルが提供するものについてもう少し詳しい情報を提供できますか?例えばeコマースサイトを構築する場合、ユーザーは個人アカウントと企業アカウントを持つことができます。これは、割引ポリシー、注文数量などに影響します。この情報は、より情報に基づいた提案をするのに役立ちます。 – rantanplan
うわー、これはとても遅いです!これはソーシャルサイトのためのものであり、ロールプレイ要素である。すべてのアカウントは「等しい」という点で、別々の「タイプ」はありません.Corperateアカウントや個人アカウント、単純に「メンバー」はありません。また、内蔵のDjango認証バックエンドが私のニーズを満たさないため、カスタム認証バックエンドが書かれています。希望が助けてくれる! –