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

时间:2012-07-18 20:34:27

标签: django

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您的用户模型中应该有关联,然后在您的控制器中,您应该通过用户模型关联执行所有对象访问,因此每个用户只能访问每个自己的子项。这是一篇相关的帖子How to create new (unsaved) Django model with associations?

答案 2 :(得分:0)

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

Django 1.2 object level permissions - third party solutions?