赞
踩
一般流行框架都会有实现好登录模块,Django默认已经提供了认证系统Auth模块,认证系统包含:
可插拔体现在django的配置文件INSTALL_APPS中有声明:
'django.contrib.admin',
'django.contrib.auth',
django的用户模型类包含一些常见的基本的字段,下面把它列出来了,正好用一下markdown的制表功能:
字段名 | 字段描述 |
---|---|
username | 必选。150个字符以内。 用户名可能包含字母数字,_ ,@ ,+ . 和- 个字符。 |
first_name | 可选(blank=True )。 少于等于30个字符。 |
last_name | 可选(blank=True )。 少于等于30个字符。 |
email | 可选(blank=True )。 邮箱地址。 |
password | 必选。 密码的哈希加密串。 (Django 不保存原始密码)。 原始密码可以无限长而且可以包含任意字符。 |
groups | 与Group 之间的多对多关系。 |
user_permissions | 与Permission 之间的多对多关系。 |
is_staff | 布尔值。 设置用户是否可以访问Admin 站点。 |
is_active | 布尔值。 指示用户的账号是否激活。 它不是用来控制用户是否能够登录,而是描述一种帐号的使用状态。 |
is_superuser | 是否是超级用户。超级用户具有所有权限。 |
last_login | 用户最后一次登录的时间。 |
date_joined | 账户创建的时间。 当账号创建时,默认设置为当前的date/time。 |
如果在第一次数据迁移以后,才设置AUTH_USER_MODEL自定义用户模型,则会报错。解决方案如下:
- 先把现有的数据库导出备份,然后清掉数据库中所有的数据表。
- 把开发者创建的所有子应用下面的migrations目录下除了__init__.py以外的所有迁移文件,只要涉及到用户的,一律删除
- 把django.contrib.admin.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
- 把django.contrib.auth.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
- 把reversion.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
- 把xadmin.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
- 接下来,执行数据迁移,回顾第1步中的数据,以后如果要修改用户相关数据,不需要重复本次操作,直接数据迁移即可。
由于我用的不是pycharm,所以只能用命令行来执行数据库备份和数据库恢复:
#数据库备份
mysqldump - -u luffy_user -p luffy --databases luffy > luffy_database_backup.sql
#数据库恢复,必要时加入数据库用户密码的信息
mysql -u root luffy < luffy_database_backup.sql
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。