Django 简明教程
Django Admin - Create User
Django 框架提供了一个可靠的用户管理系统。可以通过 admin interface 和编程方式来管理用户、组和权限。
当使用 startproject command 创建一个新项目时, admin 和 auth 应用程序在 INSTALLED_APPS 中默认添加。所有用户对象都存储在 "django.contrib.auth.models.User" 模型中。
假设使用以下命令创建了项目 −
django-admin startproject myproject
admin 和 auth 应用程序可在 settings 模块的 INSTALLED_APPS 列表中找到 −
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
. . .,
]
你至少需要一个用户才能使用管理面板。用户对象有以下类型 −
-
Superuser − 一个用户对象,它可以登录到管理站点并通过管理界面本身拥有添加/更改/删除其他用户以及对项目中所有模型执行 CRUD 操作的权限。
-
Staff − 用户对象有一个 is_staff 属性。当此属性设为 True,用户能够登录 Django 管理网站。超级用户默认是 staff user 。
-
Active − 默认情况下,所有用户均标记为“已激活”。正常已激活用户(无职员权限)无权使用管理网站。
Creating a Superuser
可以通过两种方式创建超级用户。
-
命令行,通过 createsuperuser 参数管理 py 脚本
-
Calling create_superuser() function programmatically.
命令行用相当简单。在项目父文件夹中执行以下命令 −
python manage.py createsuperuser
系统提示时输入 username 和 password −
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/ 。
管理主页会显示两项模型组和用户。
Creating a New User
要新建用户,单击“+”添加按钮。输入用户名(管理器)和符合规定的密码。
当新用户成功添加后,下拉启用员工状态,如果你想授予其登录权限。默认情况下,每个用户均已激活。你还可以输入其它详细信息,例如 name 和 email address 等。
展开用户模型来查看所有用户。
要以编程方式创建用户,使用 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 site 的 homepage ,并单击 Groups 模型行中的 Add 按钮来添加一个名为 admins 的新组。从可用权限列表中选择要授予给此组中的用户的权限。
要为用户启用此组中包含的所有权限,修改其属性,下拉查看可用组,选择并保存。
Django 的管理网站可以非常有效地用于创建和管理用户,以及管理组和权限。