Django商城项目笔记No.3用户部分-用户模型类
2018-10-03 17:58:22来源:博客园 阅读 ()
Django商城项目笔记No.3用户部分-用户模型类
Django提供了认证系统,文档资料https://yiyibooks.cn/xx/Django_1.11.6/topics/auth/index.html
但是我们的项目中的注册,需要保存用户的手机号,所以要自定义用户模型类,需要给模型类添加额外的字段。
Django用户模型类
Django认证系统中提供了用户模型类User保存用户的数据,默认的User包含以下常见的基本字段:
-
username
必选。 150个字符以内。 用户名可能包含字母数字_
@
+
.
-
-
password必选。 密码的哈希及元数据。 (Django 不保存原始密码)。 原始密码可以无限长而且可以包含任意字符。
-
first_name可选。(
blank=True
)。 少于等于30个字符。 -
last_name可选(blank=True)。 少于等于30个字符。
-
email可选(
blank=True
)。 邮箱地址。 -
groups与
Group
之间的多对多关系。 -
user_permissions与
Permission
之间的多对多关系。 -
is_staff布尔值。 指示用户是否可以访问Admin 站点。
-
is_active布尔值。 指示用户的账号是否激活。 我们建议您将此标志设置为
False
而不是删除帐户;这样,如果您的应用程序对用户有任何外键,则外键不会中断。它不是用来控制用户是否能够登录。 在Django更改1.10:在旧版本中,默认is_active为False不能进行登录。 -
is_superuser布尔值。 指定这个用户拥有所有的权限而不需要给他们分配明确的权限。
-
last_login用户最后一次登录的时间。
-
date_joined账户创建的时间。 当账号创建时,默认设置为当前的date/time。
常用方法:
set_password
(raw_password)
设置用户的密码为给定的原始字符串,并负责密码的。 不会保存User
对象。当None
为raw_password
时,密码将设置为一个不可用的密码。
check_password
(raw_password)
如果给定的raw_password是用户的真实密码,则返回True,可以在校验用户密码时使用。
管理器方法:
管理器方法即可以通过User.objects.
进行调用的方法。
create_user
(username, email=None, password=None, *\extra_fields*)
创建、保存并返回一个User
对象。
create_superuser
(username, email, password, *\extra_fields*)
与create_user()
相同,但是设置is_staff
和is_superuser
为True
。
创建自定义的用户模型类
Django认证系统中提供的用户模型类及方法很方便,我们可以使用这个模型类,但是字段有些无法满足项目需求,如本项目中需要保存用户的手机号,需要给模型类添加额外的字段。
Django提供了django.contrib.auth.models.AbstractUser
用户抽象模型类允许我们继承,扩展字段来使用Django认证系统的用户模型类。
在应用users的models.py中定义用户的用户模型类。
from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class User(AbstractUser): """用户模型类""" mobile = models.CharField(max_length=11, unique=True, verbose_name='手机号') class Meta: db_table = 'tb_users' verbose_name = '用户' verbose_name_plural = verbose_name
我们自定义的用户模型类还不能直接被Django的认证系统所识别,需要在配置文件中告知Django认证系统使用我们自定义的模型类。
在配置文件中进行设置
AUTH_USER_MODEL = 'users.User'
AUTH_USER_MODEL
参数的设置以点.
来分隔,表示应用名.模型类名
。
注意:Django建议我们对于AUTH_USER_MODEL
参数的设置一定要在第一次数据库迁移之前就设置好,否则后续使用可能出现未知错误。
在执行数据库迁移之前,一定要先设置好AUTH_USER_MODEL
不然会出错
执行数据库迁移
python manage.py makemigrations
python manage.py migrate
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Appium 实战练习一
下一篇:Python Day1
- Django项目中使用qq第三方登录。 2019-08-13
- 把Python项目打包成exe文件 2019-08-13
- Django和前端用ajax传输json等数据 2019-08-13
- svn下载项目的时候出现 Path to certificate 2019-08-13
- Django基本知识 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash