BLOGサブスレッドの日常
2021.04.05
Django の dumpdata のマルチバイト文字をそのまま出したい
torikai
Django の dumpdata のマルチバイト文字をそのまま出したい鳥飼です。よろしくお願いします。
結論
シリアライザのモジュールを追加して、dumpdata
のフォーマットに指定します。
settings.py
SERIALIZATION_MODULES = {
'myjson': 'path.to.serializers.myjson',
}
path/to/serializers/myjson.py
# -*- coding:utf-8 -*-
from django.core.serializers.json import Serializer as JsonSerializer
class Serializer(JsonSerializer):
def start_serialization(self):
super(Serializer, self).start_serialization()
self.json_kwargs['indent'] = 4
self.json_kwargs['ensure_ascii'] = False
python manage.py dumpdata hoge.fuga --format myjson
[{
"model": "hoge.fuga",
"pk": 1,
"fields": {
"created_at": "2021-04-05T00:47:00.000Z",
"modified_at": "2021-04-05T00:47:00.000Z",
"code": "hogehoge",
"label": "ほげほげ"
}
}]
良い感じですね!
他にも、JSONエンコーダーを指定してみたり、お好みで出力を調整できそうです。
こういうカスタマイズをさくっとできちゃうのは良いですね! Django 便利!
今日のひとネタでした。
この記事を書いた人
torikai