django-比较django权限并使用django规则

django-比较django权限并使用django规则,django,django-permissions,Django,Django Permissions,目前,我希望在Django中实现访问控制。我已经读过关于内置权限的内容,但它不考虑每个对象。例如,我想要“只有创建者才能删除自己的项目”这样的权限。所以我读到了关于django guardian的报道。再者,仔细考虑之后,可能很难管理和检查约束是否发生了变化 我看看下一个流行的权限管理应用程序django rules。这似乎符合我的要求。然而,我相信django规则需要涉及一个模型实例(因此是对象级的),也就是说,如果我需要一个简单的视图,比如“成员区域”,它就不会执行这个功能 这让我考虑对后一

目前,我希望在Django中实现访问控制。我已经读过关于内置权限的内容,但它不考虑每个对象。例如,我想要“只有创建者才能删除自己的项目”这样的权限。所以我读到了关于django guardian的报道。再者,仔细考虑之后,可能很难管理和检查约束是否发生了变化

我看看下一个流行的权限管理应用程序django rules。这似乎符合我的要求。然而,我相信django规则需要涉及一个模型实例(因此是对象级的),也就是说,如果我需要一个简单的视图,比如“成员区域”,它就不会执行这个功能

这让我考虑对后一种情况使用contrib的许可,对前一种情况使用django规则。我这里的问题是,管理这两个权限框架有多容易?。例如,我有不同的用户组。我担心重叠的场景,即管理员在管理系统中添加了特定的权限(以允许访问视图),认为这应该足够了,但结果是受规则设置的约束约束


我相信这是一种常见的情况,我诚恳地根据您的经验征求您的意见和建议

如果您是通过Django管理站点执行此操作,则可以覆盖以下方法:。这些将请求和对象作为参数获取,因此您可以使用它设置规则,如“用户X只能删除自己的对象”。

不完全通过管理站点,但无论如何,谢谢。没有注意到这些方法。如果您想通过自己的代码实现这一点,您可以向模型中添加像user\u can\u delete(self,user)这样的方法,并在您自己的代码以及has\u delete\u permission()管理方法中使用它们。Django规则不需要模型实例。模型实例是可选的。