采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
django.db.utils.OperationalError: (1366, "Incorrect string value: '\\xE7\\x94\\xA8\\xE6\\x88\\xB7...' for column 'name' at row 1")
该错误很少有人遇到,可能大家都是按照老师的环境配置来做的,但是我是在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即可。
亲 不用这样的 课程中在新建数据库的时候 我强调过 一定要在新建数据库的时候指名utf8 如果没有指名 后期用命令修改会很麻烦, 是否你们在新建的时候没有指明utf8编码?
谢谢,以解决!
你的name这个字段是否设置的类型有问题 导致不能保存中文?
我自己写的model里没有定义name这个字段,继承的AbstractUser类
把数据库的表都删掉后重新migrate就成功了。
好的, 能解决问题就好
登录后可查看更多问答,登录/注册
【毕设】Python 2.7到3.6 完美适配,Django升级2.0
14.7k 81
769 4
1.6k 22
1.4k 20