Django Admin - 默认情况下让员工访问某些区域

时间:2012-01-17 17:07:06

标签: django django-admin

有人可以告诉我如何在django(那些is_staff设置为true)中的员工用户默认在管理界面中访问某些模型吗?目前,如果我以工作人员身份登录,我只会收到“您无权编辑任何内容”。如果我以超级用户身份登录,我可以访问几个东西(在admin.py中注册的东西)。

我希望基本上将员工视为一个组,并允许他们编辑一组模型,或将某些权限设置为默认值。我搜索了文档无济于事。

4 个答案:

答案 0 :(得分:2)

您可以创建一个组并在其中创建新的员工用户成员。默认情况下不授予权限是一项安全功能。

答案 1 :(得分:1)

您是否编写过自定义身份验证后端?我曾写过一个使用LDAP与现有的身份验证系统进行交互,并且遇到了与你一样的问题" staff"用户没有任何模型的权限。超级用户很好,只是员工有问题。

我通过在我的自定义auth类中超类化ModelBackend来解决这个问题:

## in my custom auth.py
from django.contrib.auth.backends import ModelBackend

class ActiveDirectoryBackend(ModelBackend):

ModelBackend类具有确定组和用户级权限所需的功能。

此固定用户标记为"员工"从无法访问模型,并允许我通过组和权限控制对不同模型的访问。

答案 2 :(得分:0)

admin.autodiscover()添加到项目urls.py文件中。

答案 3 :(得分:0)

为此,请在django admin中的Groups中创建一个组。 Django Admin creating a group with permissions

您可以根据希望员工或用户有权访问的模型添加模型权限。

完成后,将您的用户添加到该群组。您可以通过选择感兴趣的用户并将其添加到创建的组来完成此操作。 Add specific user to groups

完成此操作后,该用户将可以访问该组拥有权限的所有模型。