Parcourir la source

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

Jeremy Stretch il y a 2 ans
Parent
commit
481d16de08
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  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
         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):