2

が任意の数の を持つUserことができるDjango モデルが必要です。組織に対する彼の権限 (変更、表示、削除) は、彼の によって決定されます。「管理者」と「メンバー」の役割だけが必要だと確信しています。FunctionOrganisationsRole

これには行レベルのアクセス許可が必要になるため、django-guardian を使用することにしました。適切なモデル デザインの選択に問題があります。これらは代替手段です

ここに画像の説明を入力

最初のものには、新しいロールを作成するという利点がありますが、それは必要ないと思います。またunique_together、ユーザーがすべての会社で 1 つの機能しか持てないようにすることもできます。can_changeで権限を設定し、Roleと の関係に基づいて行レベルの権限を推測しUserますOrganizationか? つまり、django-guardianさえ必要ないということですか?

2 番目の方がはるかに単純に見えますが、これは誤解を招く可能性があります。パーミッションは、Userが に追加されるとすぐに設定する必要がOrganizationあり、間違いなく行レベルです。

ここで正しい戦略は何ですか?

明確にするために: どちらの場合も、ユーザーはある組織の管理者になることも、別の組織のメンバーになることもできます。

4

1 に答える 1

2

パーティー モデルを使用します。

ユーザーは人ではなく、ユーザーです。個人と組織は当事者です。パーティーには 1 人の (または 1 人もいない) ユーザーがいます。

個人は、組織と多 (many2many) の関係を持っています。

個人 - <関係> - 組織

組織は相互に関係を持つこともできます。

于 2015-03-05T01:25:18.607 に答える