【发布时间】:2012-07-18 20:34:27
【问题描述】:
在 django 中是否有禁止访问其他用户对象的最佳做法?假设我可以通过路径中的 PK (some/path/to/object/PK/edit) 访问对象。禁止通过路径中的pk访问User1到User2对象的最佳方法是什么?
【问题讨论】:
标签: django
在 django 中是否有禁止访问其他用户对象的最佳做法?假设我可以通过路径中的 PK (some/path/to/object/PK/edit) 访问对象。禁止通过路径中的pk访问User1到User2对象的最佳方法是什么?
【问题讨论】:
标签: django
我通常会创建一个@owner_required 装饰器来包装具有此类要求的元素,逻辑如何工作取决于用例
【讨论】:
您应该在您的用户模型中有一个关联,然后在您的控制器中您应该通过您的用户模型关联进行所有对象访问,因此每个用户只能访问每个自己的孩子。这是一个相关的帖子How to create new (unsaved) Django model with associations?
【讨论】:
如果您需要比 Django 开箱即用提供的更精细的安全性,那么您可能需要研究其中一种 ACL 产品。从 Django 1.2 开始,可以使用第三方插件添加对象/行级别的权限。有几个可供选择。请参阅此 SO 问题以获取建议:
Django 1.2 object level permissions - third party solutions?
【讨论】: