我正在尝试创建一个网站,让用户在“工作区”中共同协作。 工作区类似于一组用户的帐户。
每个工作区将有多个用户。 有两个用户组:“超级用户”和“普通用户”。
用户可能是多个工作区的成员。 用户永远不能同时属于同一工作区中的两个用户组,但用户可以在一个工作区中是“超级用户”,在另一个工作区中是“普通用户”。
我正在尝试确定是否可以使用Django的开箱即用权限框架创建此类设置,或者最好的解决方案是创建自己的支持表格?
我的解决方案将是这样的数据模型:
这是一个明智的做法吗?还是我可以利用现成的框架来实现同样的功能?
每个工作区将有多个用户。 有两个用户组:“超级用户”和“普通用户”。
用户可能是多个工作区的成员。 用户永远不能同时属于同一工作区中的两个用户组,但用户可以在一个工作区中是“超级用户”,在另一个工作区中是“普通用户”。
我正在尝试确定是否可以使用Django的开箱即用权限框架创建此类设置,或者最好的解决方案是创建自己的支持表格?
我的解决方案将是这样的数据模型:
#(assume default User model)
class Workspace(models.Model):
workspace_name = models.CharField(max_length=100)
class WorkspaceUser(models.Model):
user = models.ForeignKey(User)
workspace = models.ForeignKey(Workspace)
usertype = models.CharField(max_length=100) #for simplicity, would only have two options
这是一个明智的做法吗?还是我可以利用现成的框架来实现同样的功能?
user.workspace_set.all()
获取用户的帐户时,如何通过多对多关系“一路上”获取WorkspaceUser的用户类型?目标是在我的模板中向我的“超级用户”显示一种内容,而向我的“普通用户”显示另一种内容。我是否使用我的帐户在request.user.account_set.all()
变量中创建一个帐户和权限字典? - Mortenrequest.user.workspaceuser_set.filter(workspace=my_workspace, usertype='super').exists()
或其他类似的方式。 - Daniel Roseman