1

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ここに画像の説明を入力

を含むすべての HTML エンティティがこのバグの影響を受けます 

なぜこうなった?


  • OS: アマゾン Linux x64
  • パイソン: 2.6
  • ジャンゴ: 1.4
  • データベース: MySQL 5.5
4

1 に答える 1

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;

ただし、各テーブルに手動で適用する必要があります。問題が発生しているテーブルにのみ適用することは可能だと思いますが。

実行する前に、必ずデータをバックアップしてください。

于 2013-08-07T06:17:06.913 に答える