django - 保护用户的模型视图不受其他用户的影响
问题描述
我正在尝试为我的模型(与用户相关)编写一个通用的 DetailView,但我不知道如何仅限制该用户(所有者)对特定模型(视图)的访问。我查看了文档,但没有找到任何指导如何以正确的方式做到这一点。到目前为止,我已经设法使用 UserPassesTestMixin 覆盖类的 test_func() 方法,我在其中检查是否object.user == self.request.user
但我不确定这是否是正确的方法。
我刚才说的可能不清楚,所以例如 id 4 的模型 A 与用户 A 相关(由其拥有)。现在,如果用户 B 尝试请求模型 A DetailView (/models/4),他应该被 403 拒绝错误代码,甚至更好的自定义错误页面。
解决方案
你试过这样的查询吗?
MyTable.objects.filter(user=self.request.user)
这仅返回与当前用户相关的对象。
推荐阅读
- amazon-web-services - 如何解决使用 Angular 上传 aws 过程中发生的错误?
- python-3.x - 识别文本文件中的 PII 数据集并对其进行加密,以便以后解密?
- jquery - OrgChart - 修改节点并添加子节点 - 使用 jquery
- javascript - Nativescript 异步函数返回对象承诺
- javascript - Electron setTimeout 在渲染器进程中返回数字而不是 Timeout 对象
- android - 在 thge Play 商店上传应用程序时严重性损坏(短信和通话记录)权限声明表
- oracle - SQL Loader - 多个文件和抓取文件名
- excel - 每 5 分钟捕获一次流数据的差异
- css - 使用 CSS3 或 Bootstrap 的六边形形状
- c++ - 方法的 C++ 返回结构