Skip to content

Commit 95b1c87

Browse files
committed
Pass schema of json as function to generate dynamic schemes.
1 parent de8b389 commit 95b1c87

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

json_editor/admin.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import json
2+
import copy
23

34
from django import forms
45
from django.utils.safestring import mark_safe
@@ -12,15 +13,20 @@ class JSONEditorWidget(forms.Widget):
1213
def __init__(self, schema, collapsed=True):
1314
super().__init__()
1415
self._schema = schema
15-
self._collapsed = int(collapsed)
16+
self._collapsed = collapsed
1617

1718
def render(self, name, value, attrs=None):
18-
self._schema['title'] = name
19-
self._schema['options'] = {'collapsed': 1}
19+
if callable(self._schema):
20+
schema = self._schema(self)
21+
else:
22+
schema = copy.copy(self._schema)
23+
24+
schema['title'] = ' '
25+
schema['options'] = {'collapsed': int(self._collapsed)}
2026

2127
context = {
2228
'name': name,
23-
'schema': self._schema,
29+
'schema': schema,
2430
'data': json.loads(value),
2531
}
2632
return mark_safe(render_to_string(self.template_name, context))

0 commit comments

Comments
 (0)