如何在Django中处理每个对象的权限?

时间:2015-10-15 01:46:57

标签: django django-guardian

我准备使用django-guardian,直到我在官方文档中遇到以下内容:

https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#handling-authorization-in-custom-backends

  

不仅可以为每种类型的对象设置权限,还可以为每个特定的对象实例设置权限。通过使用ModelAdmin类提供的has_add_permission(),has_change_permission()和has_delete_permission()方法,可以为同一类型的不同对象实例自定义权限。

这是否意味着更新版本的Django不再需要django-guardian?

请澄清。

1 个答案:

答案 0 :(得分:24)

事实上,在阅读文档时,我很高兴Django能够满足开箱即用的“每个对象权限检查”especially in the admin,并且了解如何激活它将是一个时间问题它。

然而,this does not seem to always be the case

Django undoubtedly strives为这样的实现提供了理由(API),但是这种实现有时需要良好的编码技能和Django理解。

开发人员将creating the app一起使用这些工具来满足其需求。这可能很容易,也可能......不那么容易!

这种矛盾的信息构成了我的网页抓取的基础,它专注于寻找“每个对象权限”问题的解决方案,不知何故......有效地满足了我的项目需求或规模,当然还有我自己的编码技能和Django理解到目前为止。

Django-guardian似乎是用于此目的的最强大,完整,全面的应用程序。

还有其他more lightweight django applications可以满足生产稳定的特定需求。

虽然在这个有点棘手的任务中努力维持生计,但我倾向于使用django-rules来简化并专注于我的需求。