Rag*_*gar 1 django django-admin
我正在为应用程序使用 django 管理界面。我在一个名为“books”的应用程序中有一些模型。除了管理员(具有超级用户状态)之外,还有两个用户“经理”和“员工”。“员工”用户只能添加模型。“经理”可以添加、更改和删除图书应用程序中的每个模型。我通过管理界面授予了权限。但在 shell 中,“manager”的 has_perm(books.delete_ModelName) 返回 False。
>>> u = User.objects.get(username__exact="manager")
>>> u.has_perm("books.delete_ModelName")
False
Run Code Online (Sandbox Code Playgroud)
当通过管理界面向“经理”授予超级状态时,has_perm(books.delete_ModelName) 返回 True。为什么会出现这种情况?我想根据此权限设置对特定页面的访问权限。有什么解决办法吗?
问题解决了。问题出在 ModelName 上。如果模型的名称是“ModelName”,则会将其转储为权限中的模型名称。所以这里应该是
>>> u.has_perm("books.delete_modelname")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
988 次 |
| 最近记录: |