首页 文章

在Django中使用用户角色

提问于
浏览
12

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

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

1用户有多个用户配置文件?我不知道

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

另一种可能性(作为下面的评论)是检查Django权限系统,我可以在其中创建用户组,并为这些组分配权限,虽然在这里我只能编辑,创建和删除模型吗?

我对如何解决这个问题感到困惑

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

如果有人可以指导我,我将非常感谢最诚挚的问候

1 回答

  • 14

    你可能会让这个与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
    

相关问题