我需要一个Django模型,其中User
可以有Function
个Organisations
。他对组织的权限(更改,查看,删除)由他的Role
确定。我很确定我只需要一个“管理员”和“成员”角色。
这需要行级权限,所以我决定使用django-guardian。我无法选择合适的模型设计。这些是替代方案
第一个会有创建新角色的优势,但我认为我不需要这样做。此外,我可以强制执行unique_together
,以便用户每个公司只能拥有1个功能。我会在can_change
设置Role
权限,并根据User
和Organization
之间的关系推断行级权限吗?这意味着我甚至不需要django-guardian,对吗?
第二个看起来更简单,但也许这是骗人的。只要将User
添加到Organization
并且肯定是行级别,就必须设置权限。
这里的正确策略是什么?
澄清一下:在这两种情况下,用户都可以是一个组织的管理员,而只是另一个组织的成员。
答案 0 :(得分:0)
使用派对模型。
用户不是个人,而是用户。人和组织是政党。一方有一个(或没有)用户。
一个人与组织有很多(很多)关系:
个人 - <关系> - 组织
组织也可以彼此建立关系。