Django 简明教程

Django Admin - Create User

Django 框架提供了一个可靠的用户管理系统。可以通过 admin interface 和编程方式来管理用户、组和权限。

当使用 startproject command 创建一个新项目时, adminauth 应用程序在 INSTALLED_APPS 中默认添加。所有用户对象都存储在 "django.contrib.auth.models.User" 模型中。

假设使用以下命令创建了项目 −

django-admin startproject myproject

adminauth 应用程序可在 settings 模块的 INSTALLED_APPS 列表中找到 −

INSTALLED_APPS = [
   'django.contrib.admin',
   'django.contrib.auth',
   . . .,
]

你至少需要一个用户才能使用管理面板。用户对象有以下类型 −

  1. Superuser − 一个用户对象,它可以登录到管理站点并通过管理界面本身拥有添加/更改/删除其他用户以及对项目中所有模型执行 CRUD 操作的权限。

  2. Staff − 用户对象有一个 is_staff 属性。当此属性设为 True,用户能够登录 Django 管理网站。超级用户默认是 staff user

  3. Active − 默认情况下,所有用户均标记为“已激活”。正常已激活用户(无职员权限)无权使用管理网站。

Creating a Superuser

可以通过两种方式创建超级用户。

  1. 命令行,通过 createsuperuser 参数管理 py 脚本

  2. Calling create_superuser() function programmatically.

命令行用相当简单。在项目父文件夹中执行以下命令 −

python manage.py createsuperuser

系统提示时输入 usernamepassword

Username: admin
Email address: admin@example.com
Password: ********
Password (again): ********
The password is too similar to the username.
This password is too short. It must contain at least 8 characters.
This password is too common.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

启动 Django 服务器,用超级用户凭据登录,开放管理员网站的登录页面 http://localhost:8000/admin/

管理主页会显示两项模型组和用户。

django create user 1

Creating a New User

要新建用户,单击“+”添加按钮。输入用户名(管理器)和符合规定的密码。

django create user 2

当新用户成功添加后,下拉启用员工状态,如果你想授予其登录权限。默认情况下,每个用户均已激活。你还可以输入其它详细信息,例如 nameemail address 等。

展开用户模型来查看所有用户。

django create user 3

要以编程方式创建用户,使用 Django Shell。

像下面这样调用 create_user() 函数 −

>>> from django.contrib.auth.models import User
>>> usr=User.objects.create_user('testusr', 'test@example.com', 'pass123')

为获得工作人员状态,将 is_staff 属性设为 True。

>>> usr.is_staff=True
>>> usr.save()

刷新管理网站中的用户列表。你应该可以看到新添加的用户。

一个 group 对用户进行分类,以便你可以将权限或一些其它标签应用到这些用户。 A user can belong to any number of groups

在 Django 中,一个 group 是已分配给一个或多个用户的权限列表。当你新建或修改用户时,简单地选择期望的组,以便其中列出的所有权限都将授予用户。此外,你始终可以除了通过用户获得的权限之外将其它权限添加到用户。

转到 admin sitehomepage ,并单击 Groups 模型行中的 Add 按钮来添加一个名为 admins 的新组。从可用权限列表中选择要授予给此组中的用户的权限。

django create user 4

要为用户启用此组中包含的所有权限,修改其属性,下拉查看可用组,选择并保存。

django create user 5

Django 的管理网站可以非常有效地用于创建和管理用户,以及管理组和权限。