従来のMySQLデータベースの上にdjango-adminを設定しています。
データベースは、latin-1でエンコードされていることを宣言します。データベースに入力されたデータの一部は実際にはlatin-1ですが、実際にはUTF-8です。これは、次のような破損した文字として表示されます:é€äö
レガシーアプリケーションはこれらのエラーを隠すためにいくつかの黒魔術を行い、データベースを変更できません。
latin-1で破損したUTF-8を実際のUTF-8に変換できるPythonライブラリを見つけましたftfy。たとえば、上記の文字は「é€äö」に変換されます。データベースからロードするすべてdjango.db.models.CharFieldのデータに使用したい。django.db.models.TextFieldどうやってするの?
サブクラスdjango.db.models.CharField化しようとしdjango.db.models.TextFieldましたが、データベースからのデータをインターセプトする場所がわかりませんでした。FTFYCharField最適なソリューションは、データベースから取得したデータを常に修正するようなものです。