django的员工,管理员,超级用户有什么区别?

时间:2013-12-09 11:13:47

标签: django django-admin user-permissions

Django有超级用户,员工,管理员......

超级用户和工作人员在django.contib.auth.models.UserManager。然后是createsuperuser的{​​{1}}命令。

嗯,有管理员应用......有什么区别?

3 个答案:

答案 0 :(得分:26)

我从Django文档中获取此信息:

  

Django最强大的部分之一是自动管理   接口。最好的是你可以轻松定制它。

     

如果以超级用户身份登录,您可以创建,编辑和   删除任何对象(模型)。

     

您可以使用职员标志创建员工用户。 “staff”标志控制   是否允许用户登录管理界面(即   该用户是否被视为您的“工作人员”   组织)。由于可以使用相同的用户系统来控制   访问公共(即非管理员)站点,此标志区分   公共用户和管理员之间。

     

“普通”管理员用户 - 即活跃的非超级用户员工 -   通过分配的权限授予管理员权限。每个对象   通过管理界面可编辑有三个权限:一个创建   所有的权限,编辑权限和删除权限   你创建的模型。

     

Django的管理站点使用您可以使用的权限系统   特定用户只能访问他们所在界面的部分   需要。当您创建用户时,该用户没有权限,而且是   由您来授予用户特定权限

答案 1 :(得分:21)

Django只有一种用户类型。它只是User。根据您为用户提供的权限,默认情况下他们可以执行不同的操作:

  1. 任何普通用户都可以进行身份​​验证(这是用户的全部目的,登录)。
  2. 分配了staff标志的任何用户都可以登录提供的管理应用。除此之外,他们没有其他特权。
  3. 可以将它们设置为活动状态。只允许活跃用户登录。
  4. 超级用户只是创建具有所有权限的用户的便捷方法。默认情况下,他们只是给予员工和所有权限的普通用户。

    还有ADMINSMANAGERS设置。

    当网站在生产中运行时(即DEBUG为假时),这些用于通知。

    管理员会收到有关生成回溯的任何错误的通知。他们通过电子邮件发送回溯和有关请求的信息。当有人请求不存在的链接时(基本上,当提出404时),管理员会通过电子邮件发送。

答案 2 :(得分:8)

超级用户自动拥有所有权限(has_perm将返回True)。

工作人员可以登录管理页面。

管理页面是您配置为显示在其中的模型的简单界面。它仅显示当前用户具有正确权限的模型。

因此,如果有人既是超级用户又是员工,他们可以登录管理站点并拥有管理站点中显示的所有模型的完全访问权限。