Browse Source

Fixes #14838: JSONField should treat initial form data as JSON

Jeremy Stretch 2 years ago
parent
commit
481d16de08
1 changed files with 6 additions and 1 deletions
  1. 6 1
      netbox/utilities/forms/fields/fields.py

+ 6 - 1
netbox/utilities/forms/fields/fields.py

@@ -105,7 +105,12 @@ class JSONField(_JSONField):
             return value
             return value
         if value in ('', None):
         if value in ('', None):
             return ''
             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):
 class MACAddressField(forms.Field):