python - 在django自带的admin管理站点上,修改admin账户属性的时候,不论写入中文还是英文都出现 column 'change_messsage' 类的错误?
巴扎黑
巴扎黑 2017-04-17 13:15:30
[Python讨论组]

为什么我在django自带的admin管理站点上,修改admin账户属性的时候,不论写入中文还是英文或者什么都不做,就点击一下保存并继续都会出现 column 'change_messsage' 类的错误?

mysql的my.ini配置文件的数据库默认编码是utf8

报错信息如下:

巴扎黑
巴扎黑

全部回复(2)
巴扎黑

看起来像是数据库编码与表内编码及字段编码没有统一所导致的。

迷茫

看着像数据库编码问题,可以试一下这个脚本

import MySQLdb

host = "localhost"
passwd = ""
user = "root"
dbname = "django"

db = MySQLdb.connect(host=host, user=user, passwd=passwd, db=dbname)
cursor = db.cursor()

cursor.execute("ALTER DATABASE `%s` CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'" % dbname)

sql = "SELECT DISTINCT(table_name) FROM information_schema.columns WHERE table_schema = '%s'" % dbname
cursor.execute(sql)

results = cursor.fetchall()
for row in results:
  sql = "ALTER TABLE `%s` convert to character set DEFAULT COLLATE DEFAULT" % (row[0])
  cursor.execute(sql)
db.close()
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号