2

我需要一个 Django 模型,其中 aUser可以有Function任意数量的Organisations. 他对组织的权限(更改、查看、删除)由他的Role. 我很确定我只需要一个“管理员”和一个“成员”角色。

这需要行级权限,所以我决定使用 django-guardian。我无法选择合适的模型设计。这些是替代品

在此处输入图像描述

第一个将具有创建新角色的优势,但我认为我不需要那个。我也可以强制执行unique_together,以便用户在每家公司只能拥有 1 个功能。我会在 和 之间设置can_change权限并根据和Role之间的关系推断行级别权限吗?这意味着我什至不需要 django-guardian,对吧?UserOrganization

第二个看起来要简单得多,但这可能具有欺骗性。只要将 aUser添加到 an就必须设置权限Organization,并且绝对是行级的。

这里的正确策略是什么?

澄清一下:在这两种情况下,用户都可以是一个组织的管理员,也可以是另一个组织的成员。

4

1 回答 1

2

使用派对模式。

用户不是一个人,它是一个用户。人和组织都是当事人。一方有一个(或没有)用户。

一个人与一个组织有许多(many2many)关系:

个人 -< 关系 >- 组织

组织之间也可以建立关系。

于 2015-03-05T01:25:18.607 回答