我的模型包含以下类型的字段:
django.contrib.postgres.fields.JSONField
我希望它始终通过以下方式反序列化:
json.loads(value, parse_int=decimal.Decimal, parse_float=decimal.Decimal)
通过以下方式访问对象时
MyModel.objects.get(..)
但是我发现很难自定义,因为json.loads
的行必须被上面一行覆盖
psycopg2/_json.py
在def _create_json_typecasters
的内部方法中。
所以我希望不得不改变我的模型字段类型, 或者有一种更简单的方法可以告诉Django如何准备我的模型?
答案 0 :(得分:1)
我找到了它:
psycopg2.extras.register_default_json(loads=my_loads_func)
psycopg2.extras.register_default_jsonb(loads=my_loads_func) # for Postgres jsonb
或以更复杂的方式进行调整: psycopg2 docs