【问题标题】:How to handle per object permission in Django nowadays?现在如何在 Django 中处理每个对象的权限?
【发布时间】:2016-01-13 07:37:21
【问题描述】:

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

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

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

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

请澄清。

【问题讨论】:

标签: django django-guardian


【解决方案1】:

确实,在阅读文档时,我很兴奋 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 似乎是为此目的最强大、最成熟、最成熟的应用程序,它还有一个关于其管理集成的3 years old open issue

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

虽然试图在这个有点棘手的任务中维持生计,但我倾向于使用django-rules,因为它简单且专注于我的需求。

【讨论】:

  • 我想用 Django 管理站点实现对象级权限。我选择了Django-guardian,遗憾的是它不起作用,即使是example that is shipped with the packageThe issue is not addressed 超过 3 年。我不会推荐 Django Guardian。
  • @vignz.pie 正如我在帖子中提到的,Django Guardian 是一个巨大的项目,学习曲线陡峭。我也不会使用它,相反,正如我在帖子中提到的那样,我倾向于使用django-rules。但是,感谢您为 django-admin 提及 Django-guardian 的这个特殊问题。我已经更新了我的帖子。
猜你喜欢
  • 2016-12-23
  • 1970-01-01
  • 2014-06-21
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
相关资源
最近更新 更多