我正在为应用程序使用django管理界面。我在一个名为'books'的应用程序中有一些模型。除了admin(具有超级用户身份),有两个用户'manager'和'employee'。 “员工”用户只能添加模型。 “经理”可以添加,更改和删除书籍app中的每个模型。我通过管理界面提供了权限。但是在shell中,'manager'的has_perm(books.delete_ModelName)返回False。
>>> u = User.objects.get(username__exact="manager")
>>> u.has_perm("books.delete_ModelName")
False
通过管理界面向'manager'提供superstatus时,has_perm(books.delete_ModelName)返回True。为什么会这样?我想根据此权限设置对特定页面的访问权限。有什么工作吗?
答案 0 :(得分:4)
问题解决了。问题出在ModelName上。如果模型的名称是“ModelName”,则将其作为modelname转储到权限中。所以这里应该是
>>> u.has_perm("books.delete_modelname")