当我尝试通过 django
管理界面添加新记录时,出现了以下错误:
OperationalError at /admin/competition/sport/add/ (1366, "Incorrect string value: '\xC4\x9F\xC3\xBC' for column 'object_repr' at row 1") Request Method: POST Request URL: http://127.0.0.1:8000/admin/competition/sport/add/ Django Version: 1.11.4 Exception Type: OperationalError Exception Value:
(1366, "Incorrect string value: '\xC4\x9F\xC3\xBC' for column 'object_repr' at row 1")
这是数据模型:
class Sport(models.Model):
is_team = models.BooleanField(_("Is Team"))
name = models.CharField(_("Name"), max_length=200)
以下是我的 settings.py
中针对 mysql
后端的选项:
'OPTIONS': {
'charset': 'utf8mb4',
'init_command': 'SET character_set_connection=utf8mb4;'
'SET collation_connection=utf8mb4_unicode_ci;'
"SET NAMES 'utf8mb4';"
"SET CHARACTER SET utf8mb4;"
},
我已经按照这里所述的更新了所有表和列,使用了
utf8mb4
编码。到目前为止,没有任何进展。当我尝试使用
mysql
shell插入包含Unicode字符的记录时,不会出现错误,但是django
管理页面会显示上述错误。有趣的是,当我手动插入记录时,下面的代码可以完美运行:
Sport(is_team=True, name="ÜĞüiğÇÖ").save()
ALTER TABLE CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;```
- Emily