django - ValueError:无法查询“”:必须是“组”实例
问题描述
我创建自定义用户和组模型继承Abstract user model
和auth Group model
。
但是我创建了工作人员并授予了相同的错误触发器一些权限。然后检查用户权限相同的错误触发器。
放一些代码或错误。如何找出这个错误?`
(Pdb) user=request.user
(Pdb) user
<SimpleLazyObject: <User: Gaurav@gmail.com>>
(Pdb) user.groups.first()
<UserGroup: Test>
(Pdb) g1=user.groups.first()
(Pdb) g1.permissions.all()
<QuerySet [<Permission: auth | group | Can add group>, <Permission: auth | group | Can change group>, <Permission: auth | group | Can delete group>, <Permission: auth | group | Can view group>, <Permission: camera | CameraGroup | Can add CameraGroup>, <Permission: camera | CameraGroup | Can change CameraGroup>, <Permission: camera | CameraGroup | Can delete CameraGroup>, <Permission: camera | CameraGroup | Can view CameraGroup>]>
(Pdb) user.has_perm('view_cameragroup')
*** ValueError: Cannot query "Gaurav@gmail.com": Must be "Group" instance.`
解决方案
您在has_perm()
方法中的参数似乎不正确。用于检查权限的参数,由应用标签、权限代码和型号名称组成。例如,您的应用名称是blog并且您的模型名称是Post。如果您希望用户具有查看权限,则可以通过user.has_perm('blog.view_post')
.
您可以从 django 文档中获得进一步的指导:https ://docs.djangoproject.com/en/3.0/topics/auth/default/#default-permissions
我希望这能帮到您 :)
推荐阅读
- php - Laravel - 未定义的变量:讲师
- python - 尝试解析 Word 文档并获取 PdfReadError: EOF marker not found
- c++ - Qt-5.14.0:QML 下的 Vulkan 导致 std::system_error:: 互斥锁失败
- uwp - 在哪里可以找到 UWP 控件的默认控件模板?
- android - 如何使用 NetworkBoundResource 在 MVVM 中使用网络错误响应更新 UI
- java - 如何使用正则表达式拆分 MCQ(多项选择题)字符串
- javascript - 触发 onclick 事件后保持引导程序打开
- java - 如何在 Markov Chain W/O runtine 错误中编写递归调用
- python - Python 找不到任何模块,即使它们已经安装
- java - 为什么我的 ArrayList 的 ArrayList 值在设置后会变回来?