use DjangoJSONEncoder for ChangedObject.updated_fields (fixes C3NAV-37C3-K)

This commit is contained in:
Gwendolyn 2023-12-17 14:49:37 +01:00
parent 8dca16f46c
commit 2ecef02a9e

View file

@ -4,6 +4,7 @@ from decimal import Decimal
from itertools import chain from itertools import chain
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.serializers.json import DjangoJSONEncoder
from django.db import models from django.db import models
from django.db.models import CharField, DecimalField, Field, TextField from django.db.models import CharField, DecimalField, Field, TextField
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@ -35,7 +36,8 @@ class ChangedObject(models.Model):
created = models.DateTimeField(auto_now_add=True, verbose_name=_('created')) created = models.DateTimeField(auto_now_add=True, verbose_name=_('created'))
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
existing_object_pk = models.PositiveIntegerField(null=True, verbose_name=_('id of existing object')) existing_object_pk = models.PositiveIntegerField(null=True, verbose_name=_('id of existing object'))
updated_fields = models.JSONField(default=dict, verbose_name=_('updated fields')) updated_fields = models.JSONField(default=dict, verbose_name=_('updated fields'),
encoder=DjangoJSONEncoder)
m2m_added = models.JSONField(default=dict, verbose_name=_('added m2m values')) m2m_added = models.JSONField(default=dict, verbose_name=_('added m2m values'))
m2m_removed = models.JSONField(default=dict, verbose_name=_('removed m2m values')) m2m_removed = models.JSONField(default=dict, verbose_name=_('removed m2m values'))
deleted = models.BooleanField(default=False, verbose_name=_('object was deleted')) deleted = models.BooleanField(default=False, verbose_name=_('object was deleted'))