在Djang中使用用户角色

2024-05-19 18:49:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个问题 在一个项目中,我需要与三种(可能更多)类型的用户一起工作,这三种类型的用户具有不同的角色: 医生 病人 管理员

我一直在考虑使用Django模型用户并扩展它来创建一个userprofile模型。。。 但是我忽略了如何管理不同的角色,因为userprofile模型将包含用户模型的字段,尽管我不知道如何处理角色主题。

一个用户有多个用户配置文件可能是?我不知道

或者我应该创建一个角色模型/表,在其中指定角色类型并创建与用户模型的关系。这是一个很好的可能性。

另一种可能性(作为下面的注释)是检查Django权限系统,在该系统中我可以创建用户组,并为这些组分配权限,尽管在这里我只能编辑、创建和删除模型真的吗?

我对如何处理这个问题有些困惑

搜索时我找到了这个应用程序。 https://github.com/dabapps/django-user-roles

如果有人能指点我,我将不胜感激 致意


Tags: 项目django用户模型权限角色类型主题
1条回答
网友
1楼 · 发布于 2024-05-19 18:49:33

你也许可以用django内置的permissions

但这可能超出你的需要。一个简单的解决方案是一个UserProfile模型,其中有一个角色字段,其中有一个OneToOneField给您的用户:

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

相关问题 更多 >