فهرست منبع

Closes #2402: Order and format JSON data in form fields

Jeremy Stretch 7 سال پیش
والد
کامیت
292647da14
2فایلهای تغییر یافته به همراه9 افزوده شده و 2 حذف شده
  1. 4 0
      CHANGELOG.md
  2. 5 2
      netbox/utilities/forms.py

+ 4 - 0
CHANGELOG.md

@@ -1,5 +1,9 @@
 v2.4.5 (FUTURE)
 
+## Enhancements
+
+* [#2402](https://github.com/digitalocean/netbox/issues/2402) - Order and format JSON data in form fields
+
 ## Bug Fixes
 
 * [#2406](https://github.com/digitalocean/netbox/issues/2406) - Remove hard-coded limit of 1000 objects from API-populated form fields

+ 5 - 2
netbox/utilities/forms.py

@@ -2,11 +2,12 @@ from __future__ import unicode_literals
 
 import csv
 from io import StringIO
+import json
 import re
 
 from django import forms
 from django.conf import settings
-from django.contrib.postgres.forms import JSONField as _JSONField
+from django.contrib.postgres.forms.jsonb import JSONField as _JSONField, InvalidJSONInput
 from django.db.models import Count
 from django.urls import reverse_lazy
 from mptt.forms import TreeNodeMultipleChoiceField
@@ -556,9 +557,11 @@ class JSONField(_JSONField):
             self.widget.attrs['placeholder'] = ''
 
     def prepare_value(self, value):
+        if isinstance(value, InvalidJSONInput):
+            return value
         if value is None:
             return ''
-        return super(JSONField, self).prepare_value(value)
+        return json.dumps(value, sort_keys=True, indent=4)
 
 
 #