From 481d16de0880b7c3b4b96e36410c7c9588abf377 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 23 Jan 2024 08:39:32 -0500 Subject: [PATCH] Fixes #14838: JSONField should treat initial form data as JSON --- netbox/utilities/forms/fields/fields.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/netbox/utilities/forms/fields/fields.py b/netbox/utilities/forms/fields/fields.py index d4d4ae19b..7a3e818f6 100644 --- a/netbox/utilities/forms/fields/fields.py +++ b/netbox/utilities/forms/fields/fields.py @@ -105,7 +105,12 @@ class JSONField(_JSONField): return value if value in ('', None): return '' - return json.dumps(value, sort_keys=True, indent=4) + if type(value) is str: + try: + value = json.loads(value, cls=self.decoder) + except json.decoder.JSONDecodeError: + return value + return json.dumps(value, sort_keys=True, indent=4, ensure_ascii=False, cls=self.encoder) class MACAddressField(forms.Field):