24

いくつか質問があります。あるプロジェクトで、3 種類 (それ以上かもしれません) のユーザーと連携する必要があります。ユーザーの役割は異なります: 医師 患者管理者

私はDjangoモデルユーザーの使用を考えていて、それを拡張してユーザープロファイルモデルを作成しています...しかし、ユーザープロファイルモデルにはユーザーモデルのフィールドがあるため、さまざまな役割を管理する方法を無視しますが、方法はわかりません役割のトピックに対処します。

1 人のユーザーが多くのユーザー プロファイルを持っている可能性がありますか? 知らない

または、ロール タイプを指定してユーザー モデルとの関係を作成するロール モデル/テーブルを作成する必要があるかもしれません。これは良い可能性です。

別の可能性 (以下のコメントとして) は、ユーザー グループを作成し、これらのグループに権限を割り当てることができる Django 権限システムを確認することですが、ここではモデルの編集、作成、および削除しかできません。

私はこの問題に対処する方法について少し混乱しています

検索してこのアプリを見つけました。 https://github.com/dabapps/django-user-roles

誰かがそれについて私を導くことができれば、私はとても感謝しています 敬具

4

2 に答える 2

26

おそらく、これを django の組み込みのアクセス許可で動作させることができます

ただし、それは必要以上かもしれません。簡単な解決策は、ユーザーへの OneToOneField を持つロール フィールドを持つ UserProfile モデルです。

class UserProfile(models.Model):
  user = models.OneToOneField(User, related_name="profile")
  role = models.CharField()

ロールを設定し、ビューでロールをチェックします。

user.profile.role = "physician"
user.profile.save()

if user.profile.role == "physician":
  #do physician case here
于 2015-10-30T22:13:35.290 に答える