Django 为用户设置不同的权限

Django different set of permissions for a user

在我的项目中,用户和办公室有多对多的关系,每个用户在不同的办公室可能有不同的角色,因此他有不同的权限集我如何在 Django 中实现这一点,我应该使用对象级权限和在 office 和用户之间的直通模型中设置权限,或者我可以使用 django 的内置 Permission 模型并在直通模型中有一个权限字段,我认为使用组不是解决这个问题的好方法

您的项目需要每个对象级别的权限,使用 django-guardian 然后您可以为给定用户分配对象级别(比如特定办公室)的权限。

>>> from guardian.models import UserObjectPermission
>>> user = User.objects.get(first_name='foo')
>>> office = Office.objects.get(name='bar')
>>> UserObjectPermission.objects.assign_perm('entry', user, obj=office)
<UserObjectPermission: office | foo | entry>
>>> jack.has_perm('entry', office)
True