我想限制管理界面的哪些部分对哪些员工可见-例如,一个人可能只负责相关项目的账单,另一个人只负责客户支持,第三个人可能有完全访问权限。
我可以通过将is_superuser设置为True来提供完全访问权限,但我不认为我想要这样(我不希望所有可以访问管理界面的员工都是超级用户)。
我可以通过将is_staff设置为True来允许员工登录到管理界面,但一旦登录,员工将无法访问任何内容-他们会看到“您没有编辑任何内容的权限”。
我尝试了this question中描述的方法,但得到了相同的“您没有权限”的结果:
class MyAdmin(admin.ModelAdmin):
def has_edit_permission(self, request):
return True有没有一种方法可以让员工在不是超级用户的情况下访问Django管理界面的一部分?
发布于 2012-04-17 07:05:03
没有has_edit_permission这样的东西。我是has_change_permission。
有关这三种权限方法的详细信息,请参阅Django ModelAdmin docs
ModelAdmin.has_add_permission(self, request)
如果允许添加对象,则应返回True,否则返回False。ModelAdmin.has_change_permission(self, request, obj=None)
如果允许编辑obj,则应返回True,否则返回False。如果obj为None,则应返回True或False,以指示是否一般允许编辑此类型的对象(例如,False将被解释为当前用户不允许编辑此类型的任何对象)。ModelAdmin.has_delete_permission(self, request, obj=None)
如果允许删除obj,则应返回True,否则返回False。如果obj为None,则应返回True或False,以指明一般是否允许删除此类型的对象(例如,False将被解释为不允许当前用户删除任何此类型的对象)。
发布于 2012-04-17 07:43:04
对于你想要做的事情,不要重写has_change_permission -只需给用户和/或用户组相应的权限(“可以更改X”),并检查"is staff“。
https://stackoverflow.com/questions/10182851
复制相似问题