django 中的 staff、admin、superuser 有什么区别?

问题描述 投票:0回答:4

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

超级用户和员工在

django.contib.auth.models.UserManager
。然后是
createsuperuser
django-admin
命令。

好吧,有管理应用程序……有什么区别?

django django-admin user-permissions
4个回答
50
投票

我从Django Documentation:

Django 最强大的部分之一是自动管理 界面。最好的是你可以很容易地定制它。

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

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

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

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


34
投票

Django 只有一种用户类型。简直

User
。根据您授予用户的权限,他们默认可以做不同的事情:

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

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

还有

ADMINS
MANAGERS
设置。

这些用于通知,当站点在生产中运行时(即,当

DEBUG
为 False 时)。

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


21
投票

超级用户自动拥有所有权限(

has_perm
将返回 True)。

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

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

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


0
投票

在Django中,超级用户是一种特殊类型的用户,拥有所有权限,可以在网站上执行任何操作。超级用户通常是在安装 Django 项目期间创建的,可以使用 Django 管理界面或命令行工具来管理它们。超级用户能够管理网站的所有方面,包括创建和管理其他用户、修改网站设置以及执行管理任务。

另一方面,admin member 是具有特定于特定应用程序或应用程序的一部分的管理权限的用户。在 Django 中,管理员成员通常是有权管理特定应用程序或应用程序内一组特定资源的用户。例如,博客应用程序的管理员成员可能有权创建、编辑和删除博客文章,但无权访问站点设置或其他管理任务。

总的来说,Django 中超级用户和管理员成员之间的主要区别是他们对网站的访问和控制级别

  • 超级用户拥有完全的控制权,可以在网站上执行任何操作

  • 管理员成员通常仅限于特定应用程序或网站部分中的一组特定权限和操作

© www.soinside.com 2019 - 2024. All rights reserved.