mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-16 04:02:52 -06:00
Fixes #9223: Fix serialization of array field values in change log
This commit is contained in:
parent
c287641363
commit
0885333b11
@ -9,6 +9,7 @@
|
|||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
* [#6389](https://github.com/netbox-community/netbox/issues/6389) - Call `snapshot()` on object when processing deletions
|
* [#6389](https://github.com/netbox-community/netbox/issues/6389) - Call `snapshot()` on object when processing deletions
|
||||||
|
* [#9223](https://github.com/netbox-community/netbox/issues/9223) - Fix serialization of array field values in change log
|
||||||
* [#9878](https://github.com/netbox-community/netbox/issues/9878) - Fix spurious error message when rendering REST API docs
|
* [#9878](https://github.com/netbox-community/netbox/issues/9878) - Fix spurious error message when rendering REST API docs
|
||||||
* [#10236](https://github.com/netbox-community/netbox/issues/10236) - Fix TypeError exception when viewing PDU configured for three-phase power
|
* [#10236](https://github.com/netbox-community/netbox/issues/10236) - Fix TypeError exception when viewing PDU configured for three-phase power
|
||||||
* [#10579](https://github.com/netbox-community/netbox/issues/10579) - Mark cable traces terminating to a provider network as complete
|
* [#10579](https://github.com/netbox-community/netbox/issues/10579) - Mark cable traces terminating to a provider network as complete
|
||||||
|
@ -445,6 +445,10 @@ EXEMPT_PATHS = (
|
|||||||
f'/{BASE_PATH}metrics',
|
f'/{BASE_PATH}metrics',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
SERIALIZATION_MODULES = {
|
||||||
|
'json': 'utilities.serializers.json',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Sentry
|
# Sentry
|
||||||
|
19
netbox/utilities/serializers/json.py
Normal file
19
netbox/utilities/serializers/json.py
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
from django.contrib.postgres.fields import ArrayField
|
||||||
|
from django.core.serializers.json import Serializer as Serializer_
|
||||||
|
from django.utils.encoding import is_protected_type
|
||||||
|
|
||||||
|
|
||||||
|
class Serializer(Serializer_):
|
||||||
|
"""
|
||||||
|
Custom extension of Django's JSON serializer to support ArrayFields (see
|
||||||
|
https://code.djangoproject.com/ticket/33974).
|
||||||
|
"""
|
||||||
|
def _value_from_field(self, obj, field):
|
||||||
|
value = field.value_from_object(obj)
|
||||||
|
|
||||||
|
# Handle ArrayFields of protected types
|
||||||
|
if type(field) is ArrayField:
|
||||||
|
if not value or is_protected_type(value[0]):
|
||||||
|
return value
|
||||||
|
|
||||||
|
return value if is_protected_type(value) else field.value_to_string(obj)
|
Loading…
Reference in New Issue
Block a user