migrate时报错django.db.utils.OperationalError: (1366

来源:4-5 自定义userprofile

慕码人6221433

2017-07-26

django.db.utils.OperationalError: (1366, "Incorrect string value: '\\xE7\\x94\\xA8\\xE6\\x88\\xB7...' for column 'name' at row 1")

写回答

2回答

小辉辉学编程

2017-09-05

该错误很少有人遇到,可能大家都是按照老师的环境配置来做的,但是我是在linux系统配置的环境,所以也遇到了该问题,该问题的主要原因是linux下mysql的字符集设置问题,他的utf-8编码不是实际的utf-8编码,因此遇到特殊的情况会报错。在网上找了很久发现是在数据库建库阶段,就要把编码方式指定好,同时要将所有存入数据库的字符转换成utf-8编码。以下是解决方法:

先在settings.py中添加:DEFAULT_CHARSET = 'utf-8

然后使用mysql命令行创建一个数据库,设置编码为utf8_general_ci,在写入数据前,将要写的字符串都转换为utf8:

CREATE DATABASE MxOnline DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

做完这两步后再重新运行makemigrations和migrate即可。

1
2
我是喵大
谢谢,以解决!
2019-12-30
共2条回复

bobby

2017-07-26

你的name这个字段是否设置的类型有问题 导致不能保存中文?

0
5
bobby
回复
小辉辉学编程
课程中在新建数据库的时候 我强调过 一定要在新建数据库的时候指名utf8 如果没有指名 后期用命令修改会很麻烦, 是否你们在新建的时候没有指明utf8编码? 如果没有指名 就直接删除数据库 然后重新执行上诉的操作就行了
2017-09-06
共5条回复

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4038 问题

查看课程