【问题标题】:What's the difference between staff, admin, superuser in django?django 中的员工、管理员、超级用户有什么区别?
【发布时间】:2013-12-26 11:26:35
【问题描述】:

Django 拥有超级用户、员工、管理员……

超级用户和员工在django.contib.auth.models.UserManager。然后是django-admincreatesuperuser命令。

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

【问题讨论】:

    标签: django django-admin user-permissions


    【解决方案1】:

    我从 Django 文档中获取这个:

    Django 最强大的部分之一是自动管理 界面。最好的事情是您可以轻松自定义它。

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

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

    “普通”管理员用户——即活跃的非超级用户员工—— 通过分配的权限被授予管理员访问权限。每个对象 通过管理界面可编辑具有三个权限:创建 权限、编辑权限和删除权限 您创建的模型。

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

    【讨论】:

      【解决方案2】:

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

      1. 任何普通用户都可以通过身份验证(这就是用户的全部意义,即登录)。
      2. 任何分配了staff 标志的用户都可以登录到贡献的管理应用程序。除此之外,他们没有其他特权。
      3. 可以将它们设置为活动或不活动。只有活跃用户才能登录。

      超级用户只是一种创建具有所有权限的用户的便捷方法。他们只是普通用户,默认情况下被授予员工和所有权限。

      还有ADMINSMANAGERS设置。

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

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

      【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-04
        • 2016-03-05
        • 1970-01-01
        相关资源
        最近更新 更多