首页 > 解决方案 > 保护用户的模型视图不受其他用户的影响

问题描述

我正在尝试为我的模型(与用户相关)编写一个通用的 DetailView,但我不知道如何仅限制该用户(所有者)对特定模型(视图)的访问。我查看了文档,但没有找到任何指导如何以正确的方式做到这一点。到目前为止,我已经设法使用 UserPassesTestMixin 覆盖类的 test_func() 方法,我在其中检查是否object.user == self.request.user但我不确定这是否是正确的方法。

我刚才说的可能不清楚,所以例如 id 4 的模型 A 与用户 A 相关(由其拥有)。现在,如果用户 B 尝试请求模型 A DetailView (/models/4),他应该被 403 拒绝错误代码,甚至更好的自定义错误页面。

标签: djangodjango-models

解决方案


你试过这样的查询吗?

MyTable.objects.filter(user=self.request.user)

这仅返回与当前用户相关的对象。


推荐阅读