django数据迁移&出错…
1.生成迁移文件
python manage.py makemigrations
2.执行迁移
python manage.py migrate
本文前后操作
1.自定义模型类-重写父类
2.模型类数据迁移–出错
环境
- web开发
- django框架
- ubuntu虚拟机
- 数据迁移出错
指定用户模型类
定义好模型类后, 还需要额外配置才能够使用.
在 dev.py 文件中添加如下代码:
解决
指定本项目使用我们自定义的模型类:
‘应用名称.User’
AUTH_USER_MODEL = ‘users.User’
AUTH_USER_MODEL : 指定使用我们自定的模型类, 这个是规定死的,
不能更改
‘users.User’ :注意:
单引号中的不是路径, 所以千万别写为: ‘users.models.User’
这样的写法是错误的.
系统默认 AUTH_USER_MODEL 的值为 ‘auth.User’
ubuntu@python:~/django_web$ python manage.py makemigrations
Migrations for 'users':
apps/users/migrations/0001_initial.py
- Create model User
ubuntu@python:~/django_web$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions, users
Running migrations:
Applying contenttypes.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0001_initial... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying users.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying sessions.0001_initial... OK
(ubuntu@python:~/django_web$
总结:
数据迁移
>Django 自带用户认证系统,核心就是 User 对象.
Django 用户认证系统包含了一系列对用户的操作,比如:模型类,认证,权限,分组,密码处理等.
Django 用户认证系统中的用户模型类可以自定义,继承自 AbstractUser.
[Django 用户认证系统说明文档](https://docs.djangoproject.com/zh-hans/2.2/topics/auth/customizing/#extending-the-existing-user-model)