首页 > 解决方案 > Django中的对象权限基于特定模型属性的值

问题描述

我试图弄清楚如何设置一些权限来访问和更改 Django 中的一些模型。我认为内置权限系统不够灵活,我很确定答案在Django Guardian中,但我无法弄清楚如何将其应用于我的案例。

我拥有的模型结构要复杂得多,但我认为以下简化的用例说明了我在设置权限时遇到的瓶颈,如果我解决了这个问题,我应该能够在需要的地方将其应用于其余模型.

让我们考虑以下三个模型:

现在,最后一点是问题所在。可见性定义了谁有权对 ValuableData 执行什么操作,它可以采用三个值:

我需要处理的权限是标准权限(添加、查看、更改和删除),但在对象级别定义。这就是为什么我认为 Django Guardian 是答案,但是如何或在哪里——在应用程序、类或函数的哪个文件中——它们需要被应用让我无法理解。作为最后一条信息,我正在使用 Django Admin 来访问用于添加和更改模型的所有功能(既然它已经存在,为什么不呢?),但我很高兴编写一个自定义的,如果这将使从长远来看,我的生活更轻松。

总而言之,有没有人给我任何建议来设置上述权限结构 - 我最初认为这是一个简单的结构,但似乎并不那么明显。

非常感谢您的支持,

迭戈

标签: pythondjangodjango-modelsdjango-guardian

解决方案


推荐阅读