テキストフィールド内にhtmlのフラグメントを保存するDjango Adminサイトで奇妙な問題が発生しています。

保存すると、フィールドは次のようになります。

いずれにせよ、HTML は正しくレンダリングされます。本当の問題は、もう一度保存を押したときです。

を含むすべての HTML エンティティがこのバグの影響を受けます 。
なぜこうなった?
- OS: アマゾン Linux x64
- パイソン: 2.6
- ジャンゴ: 1.4
- データベース: MySQL 5.5
テキストフィールド内にhtmlのフラグメントを保存するDjango Adminサイトで奇妙な問題が発生しています。

保存すると、フィールドは次のようになります。

いずれにせよ、HTML は正しくレンダリングされます。本当の問題は、もう一度保存を押したときです。

を含むすべての HTML エンティティがこのバグの影響を受けます 。
なぜこうなった?
問題は、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;
ただし、各テーブルに手動で適用する必要があります。問題が発生しているテーブルにのみ適用することは可能だと思いますが。
実行する前に、必ずデータをバックアップしてください。