2017-12-10 12 views
0

私のアプリでは、単一のプロファイルに対して複数のログイン(資格情報&権限)を有効にしたいと考えています。Django:単一のプロファイルに対して複数のアカウントを許可する

from django.contrib.auth.models import User 

class Profile(models.Model): 

    user = models.OneToOneField(User, on_delete=models.CASCADE) 

理想的には、私はプロファイルにForeignKeyのを持っているUserモデルを希望し、それはそれを次のようになります。

は、ここに私の現在のコードです。私は同じプロファイルのために複数のユーザーを持つことができ、私の問題は解決されます。 残念ながら、私はUserモデルを拡張したくないのですが、それはかなり厄介なものです。私はそれを私のProfileモデルに入れたいと思っています。

多くのToManyFieldは機能しますが、ユーザーは複数のプロファイルを持つことができますが、これは不可能です。

何らかの「逆方向の外部キー」を作成するためのクリーンでシンプルな方法がありますか?

ベスト、

+1

はなぜ厄介なUserモデルを拡張してご覧ください。このプロファイル を共有しているされて

user.profile_set 

他の質問を尋ねますか?これを行うための完全に実行可能な方法と思われます(つまり、ユーザーとプロファイルを仲介者としてリンクする別のUserSharedProfileモデルを作成する) –

答えて

0

最初にユーザーモデルを拡張するのは面倒ではありません。 はとにかく、あなたは非常に一般的であるあなただけのいくつかの他のユーザー(テーブルレコード)を持つユーザモデル

class Profile(models.Model): 
    user = models.ForeignKey(User, models.DO_NOTHING) 

共有モデル(テーブルレコード)への外部キー制約が必要 この仕事をするユーザモデルを拡張する必要はありません。概念データベース開発。 あなたのviews.pyに問題がある場合、これは、すべてのユーザーへの逆アクセスはDOCがfollowing relationships backward

+0

残念ながら、管理者はそれを認識せず、代わりにドロップダウンリストで1人のユーザーのみを選択できますマルチドロップダウンの – justinlevol

+0

ユーザーをプロフィールに追加しないでください –

+0

プロフィールがプロダクトであり、ユーザーが顧客であるとします。あなたはいくつかの顧客に製品を販売する。それは問題 –

関連する問題