Python 学习笔记

用户,组和权限

2018-02-01  本文已影响1人  大爷的二舅

由于您是以超级用户身份登录的,因此您可以创建,编辑和删除任何对象。当然,不同的环境需要不同的许可系统 - 不是每个人都可以或应该成为超级用户。

Django的管理站点使用一个权限系统,您可以使用该系统为特定用户提供仅访问所需界面的部分的权限。这些用户帐户是足够通用的,可以在管理界面之外使用,但是我们现在将其视为管理用户帐户。在第11章中,我们将介绍如何使用Django的身份验证系统管理站点范围内的用户(即,不仅仅是管理站点)。

您可以像管理其他对象一样通过管理界面编辑用户和权限。我们在本章的前面看到了这一点,当时我们使用了管理员的用户和组。用户对象具有标准的用户名,密码,电子邮件和真实姓名字段,以及一组用于定义用户在管理界面中允许进行操作的字段。

首先,有一组三个布尔标志:

普通管理员用户 - 即活动的非超级用户员工 - 通过分配的权限被授予管理员访问权限。通过管理界面可编辑的每个对象(例如,书籍,作者,出版商)具有三个权限:创建权限,编辑权限和删除权限。

为用户分配权限授予用户访问权限以执行这些权限所描述的内容。当你创建一个用户时,该用户没有权限,这取决于你给予用户特定的权限。例如,您可以授予用户添加和更改发布者的权限,但不允许删除这些发布者。

请注意,这些权限是按模型定义的,而不是按对象定义的,因此他们让您说“John可以对任何书进行更改”,但是他们不会让您说“John可以对Apress发布的任何书进行更改。 “后者的功能,每个对象的权限,有点复杂,超出了本书的范围,但是在Django文档中已经介绍了。

警告!

访问编辑用户和权限也受此权限系统的控制。 如果您授予某人编辑用户的权限,他们将能够编辑自己的权限,这可能不是您想要的! 赋予用户编辑用户权限本质上是把用户变成超级用户。

您也可以将用户分配到组。 一个组只是一组适用于该组所有成员的权限。 组对于为用户的子集授予相同的权限很有用。

什么时候和为什么要使用管理界面 - 什么时候不要

在完成本章之后,您应该对如何使用Django的管理站点有一个很好的想法。 但是我想要说明何时以及为什么要使用它,何时不使用它。

当非技术用户需要能够输入数据时,Django的管理站点才会闪耀; 毕竟这是该功能背后的目的。 在Django最初开发的报纸上,开发一个典型的在线功能 - 比如说一份关于市政供应的水质的特别报告 - 会是这样的:

换句话说,Django的管理界面存在的理由是促进内容制作者和程序员的同时工作。 但是,除了这些明显的数据输入任务之外,管理站点在其他一些情况下也是有用的:

然而,管理员网站并不是一个完整的和最终的。 它不是要成为数据的公共接口,也不是为了对数据进行复杂的排序和搜索。 正如我在本章开头所说的那样,它是为受信任的站点管理员服务的。 记住这个甜蜜点是有效管理网站使用的关键。

下一步是什么?
到目前为止,我们已经创建了一些模型,并配置了一个用于编辑数据的顶级界面。 在下一章中,我们将继续讨论Web开发的真正硬技术和形式:表单创建和处理。

上一篇 下一篇

猜你喜欢

热点阅读