0

Je modèle avec des champs de type:Adapter JSONField avoir la conversion automatique en décimal

django.contrib.postgres.fields.JSONField 

et je veux l'avoir toujours désérialisée par:

json.loads(value, parse_int=decimal.Decimal, parse_float=decimal.Decimal) 

lors de l'accès des objets par:

MyModel.objects.get(..) 

Cependant, je l'ai trouvé difficile à personnaliser, car la ligne avec json.loads qui doit être remplacé par ci-dessus sur e est en

psycopg2/_json.py 

dans la méthode interne de def _create_json_typecasters.

alors je m'attends à devoir changer mon type de champ de modèle, ou peut-être y a-t-il un moyen plus facile de dire à Django comment préparer mon modèle?

Répondre

0

je l'ai trouvé:

psycopg2.extras.register_default_json(loads=my_loads_func) 
psycopg2.extras.register_default_jsonb(loads=my_loads_func) # for Postgres jsonb 

ou l'adapter de manière plus sophistiquée: psycopg2 docs