0

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

4

3 回答 3

1

我通常创建一个@owner_required装饰器来包装具有此类要求的元素,逻辑如何工作取决于用例

于 2012-07-18T20:50:40.710 回答
0

您应该在您的用户模型中有一个关联,然后在您的控制器中,您应该通过您的用户模型关联进行所有对象访问,因此每个用户只能访问每个自己的孩子。这是一篇相关文章如何创建带有关联的新(未保存的)Django 模型?

于 2012-07-18T20:38:18.810 回答
0

如果您需要比 Django 开箱即用提供的更精细的安全性,那么您可能需要研究其中一种 ACL 产品。从 Django 1.2 开始,可以使用第三方插件添加对象/行级别的权限。有几种可供选择。有关建议,请参阅此 SO 问题:

Django 1.2 对象级权限 - 第三方解决方案?

于 2012-07-18T23:20:15.193 回答