Django管理员将HTML实体转换为他们的角色

时间:2013-08-02 17:59:19

标签: django django-admin

我在Django Admin网站上发生了一个奇怪的问题,我将html片段存储在文本字段中。

enter image description here

一旦我点击保存,该字段就变为:

enter image description here

哪个好 - 无论如何HTML都正确呈现。真正的问题是当我再次点击保存时:

enter image description here

所有HTML实体都受此错误的影响,包括 

为什么会这样?


  • 操作系统:Amazon Linux x64
  • Python:2.6
  • Django:1.4
  • 数据库:MySQL 5.5

1 个答案:

答案 0 :(得分:1)

您的问题是Django将您的数据插入unicode,但您的mysql将其存储为latin_swedish

如果您不使用South,请使用DROP DATABASE foo;删除数据库。然后使用CREATE DATABASE foo CHARACTER SET UTF8;重新创建它并再次运行syncdb

或者,您可以通过执行以下操作转换现有数据库:

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE tablename CHARACTER SET utf8 COLLATE utf8_general_ci;

但是你必须手动为每个表应用它。虽然我认为只有将它应用于桌面才会遇到问题。

确保在执行此操作之前备份数据。