私は最近、ジャンゴを使用して製品を構築している会社に参加しました。私は現在、ここに来る少し前にすでに開発されていたアプリの 1 つを担当しています。
アプリ内のエンティティの 1 つに json ディクショナリ属性があり、テキスト フィールドとしてデータベースに保持されています。また、この属性はモデル内でテキスト フィールドとしてマークされます。したがって、ご想像のとおり、正しく処理されていません。
これを変更して、 https://github.com/bradjasper/django-jsonfieldを使用して json フィールドとして設定したかったのですが、これは非常にうまく機能します。
しかし、私は独特の問題に遭遇しました。データベースに保存された以前のデータは正しく処理されませんでした。Unicode データであるため、データベースのテキスト フィールドは次のようになります。
{u'key': u'value'}
エンティティ マネージャーが json フィールドを使用してこれらの値を読み込もうとすると、有効な json 文字列ではないため、もちろん壊れます。
これを克服する方法についていくつかの調査を行いましたが、何も見つかりませんでした。
私の質問:
これを克服する方法について何か提案はありますか?これは、どのような種類のソリューションでもかまいません。
- そのフィールドを変更して有効なjson文字列に変換することで、一晩実行できるもの。
- これらの値を正しく処理できるように、json-field コードにいくつかの変更を加えました。
追加情報
django の db バックエンドとして使用postgres
します。psycopg2
どうもありがとうございました。