首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Admin的非超级用户访问权限

Django Admin的非超级用户访问权限
EN

Stack Overflow用户
提问于 2012-04-17 06:55:10
回答 2查看 3.8K关注 0票数 0

我想限制管理界面的哪些部分对哪些员工可见-例如,一个人可能只负责相关项目的账单,另一个人只负责客户支持,第三个人可能有完全访问权限。

我可以通过将is_superuser设置为True来提供完全访问权限,但我不认为我想要这样(我不希望所有可以访问管理界面的员工都是超级用户)。

我可以通过将is_staff设置为True来允许员工登录到管理界面,但一旦登录,员工将无法访问任何内容-他们会看到“您没有编辑任何内容的权限”。

我尝试了this question中描述的方法,但得到了相同的“您没有权限”的结果:

代码语言:javascript
复制
class MyAdmin(admin.ModelAdmin):
    def has_edit_permission(self, request):
        return True

有没有一种方法可以让员工在不是超级用户的情况下访问Django管理界面的一部分?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-17 07:05:03

没有has_edit_permission这样的东西。我是has_change_permission

有关这三种权限方法的详细信息,请参阅Django ModelAdmin docs

ModelAdmin.has_add_permission(self, request)

如果允许添加对象,则应返回True,否则返回FalseModelAdmin.has_change_permission(self, request, obj=None)

如果允许编辑obj,则应返回True,否则返回False。如果objNone,则应返回TrueFalse,以指示是否一般允许编辑此类型的对象(例如,False将被解释为当前用户不允许编辑此类型的任何对象)。ModelAdmin.has_delete_permission(self, request, obj=None)

如果允许删除obj,则应返回True,否则返回False。如果objNone,则应返回TrueFalse,以指明一般是否允许删除此类型的对象(例如,False将被解释为不允许当前用户删除任何此类型的对象)。

票数 6
EN

Stack Overflow用户

发布于 2012-04-17 07:43:04

对于你想要做的事情,不要重写has_change_permission -只需给用户和/或用户组相应的权限(“可以更改X”),并检查"is staff“。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10182851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档