禁止访问django中其他用户对象的最佳方式;

禁止访问django中其他用户对象的最佳方式;,django,Django,在django中是否有禁止访问其他用户对象的最佳实践?假设我可以通过路径中的PK访问对象(some/path/to/object/PK/edit)。通过路径中的pk禁止用户1访问用户2对象的最佳方法是什么?您应该在您的用户模型中有一个关联,然后在您的控制器中,您应该通过您的用户模型关联执行所有对象访问,这样每个用户只能访问自己的孩子。下面是一篇相关的帖子我通常创建一个@owner\u required装饰器来包装具有此类需求的元素,逻辑的工作方式取决于用例如果您需要比Django现成提供的更细粒

在django中是否有禁止访问其他用户对象的最佳实践?假设我可以通过路径中的PK访问对象(some/path/to/object/PK/edit)。通过路径中的pk禁止用户1访问用户2对象的最佳方法是什么?

您应该在您的用户模型中有一个关联,然后在您的控制器中,您应该通过您的用户模型关联执行所有对象访问,这样每个用户只能访问自己的孩子。下面是一篇相关的帖子

我通常创建一个
@owner\u required
装饰器来包装具有此类需求的元素,逻辑的工作方式取决于用例

如果您需要比Django现成提供的更细粒度的安全性,那么您可能需要查看其中一个ACL产品。从Django 1.2开始,可以使用第三方插件添加对象/行级别的权限。有几种可供选择。有关建议,请参见本问题:


感谢您的想法,我在SingleObjectMixin的基础上编写了小型mixin。mixin得到了检查任何对象是否具有相同的所有者来自request.user。