6

私は現在、ユーザーが複数の「アカウント」を持つことができる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認証はオブジェクトのフィールドを読み取ることによって行われます。つまり、すべてのオブジェクトのフィールドが無駄になります。AccountpasswordUser

  • 上記と同じですが、Accountからサブクラス化しUserます。しかし、私はこれに対して強くアドバイスされています(理由は不明です)。

これに対する落とし穴やより良いアプローチはありますか?最終的に、組み込みUserモデルを、公開されているプロファイルのグループを識別する1人あたりのモデルとして使用するか(これらのプロファイルにはUserオブジェクトへのFKが含まれています)、それをプロファイル自体として使用して、リンクバックする必要があります。一人一人の単一のAccountオブジェクトに?

4

1 に答える 1

0

はい、最善のアプローチは、1人あたり1人のユーザーと、それらが「切り替える」ことができる複数のPublicProfileオブジェクトを持つことだと思います。これにより、ユーザー名/パスワードが1つだけになるという利点があり、Djangoの認証が通常どのように機能するかが最も理にかなっているようです。

于 2012-05-08T18:54:56.923 に答える