2015-10-30 32 views
9

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

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

1用户有很多userprofiles可能是?我不知道

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

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

我一些混淆关于如何解决这个问题

搜索,我发现这个程序。 https://github.com/dabapps/django-user-roles

如果有人能够确定方向我这件事,我会更感激 问候

+0

** django-用户角色**是4年前完成的,没有更新。它看起来是为Django 1.3而制作的。我不会推荐使用它。 –

+0

这是真的Andrés。我目前正在考虑其他选项,其中包括模型用户定制。感谢您的澄清 – bgarcial

+1

我的荣幸!我也会考虑这个:https://docs.djangoproject.com/en/1.8/topics/auth/default/#permissions-and-authorization –

回答

11

你也许可以得到这个建在permissions

Django的这可能更多的工作比你需要的,虽然。简单的解决办法只是一个用户配置模式与角色字段与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 
+0

Hi @sponrad我一直在探索,并且通常使用UserProfile模型为用户模型添加额外的信息或额外的属性,没有我修改用户模型...例如添加一个头像图片给用户...在这个想法下,UserProfile是不同的UserRole,如果我们谈论模型或数据结构。你同意吗?我认为我可以创建一个UserRole模型,我可以说一个用户有很多UserRoles ...例如... – bgarcial

+0

另一种方法是研究Django中的权限系统(您在上面提到我),我可以看到创建组并分配权限或权限并将其分配给用户。每个小组都可以扮演角色?这是可能的。 – bgarcial

+0

名称“UserProfile”是任意的,该表格表示您想要绑定到用户的任何信息,无论是个人资料图片,生日,角色等等。 – sponrad