Fixed nested style preserving issue on TOMLFied
This commit is contained in:
parent
2faf5e29ef
commit
c2e89d48d5
|
|
@ -2,8 +2,11 @@ from django.db import models
|
||||||
from django.forms import fields
|
from django.forms import fields
|
||||||
|
|
||||||
from asyncron.widgets import Codearea
|
from asyncron.widgets import Codearea
|
||||||
|
from asyncron.utils import rupdate
|
||||||
|
|
||||||
import tomlkit
|
import tomlkit
|
||||||
|
|
||||||
|
|
||||||
from tomlkit.exceptions import ParseError
|
from tomlkit.exceptions import ParseError
|
||||||
from tomlkit.toml_document import TOMLDocument
|
from tomlkit.toml_document import TOMLDocument
|
||||||
|
|
||||||
|
|
@ -72,7 +75,8 @@ class TOMLField( models.JSONField ):
|
||||||
#
|
#
|
||||||
try: value_as_toml = tomlkit.loads( value_as_dict.pop('_toml', '') )
|
try: value_as_toml = tomlkit.loads( value_as_dict.pop('_toml', '') )
|
||||||
except: value_as_toml = tomlkit.document()
|
except: value_as_toml = tomlkit.document()
|
||||||
value_as_toml.update( value_as_dict )
|
#We can't just use "update", we have to deep_update or we'll loose any non-shallow comments / styling
|
||||||
|
rupdate( value_as_toml, value_as_dict )
|
||||||
|
|
||||||
return value_as_toml
|
return value_as_toml
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,14 @@ def rgetattr(obj, attr, *args):
|
||||||
return getattr(obj, attr, *args)
|
return getattr(obj, attr, *args)
|
||||||
return functools.reduce(_getattr, [obj] + attr.split('.'))
|
return functools.reduce(_getattr, [obj] + attr.split('.'))
|
||||||
|
|
||||||
|
import collections.abc
|
||||||
|
def rupdate(d, u): #https://stackoverflow.com/a/3233356/
|
||||||
|
for k, v in u.items():
|
||||||
|
if isinstance(v, collections.abc.Mapping):
|
||||||
|
d[k] = rupdate(d.get(k, {}), v)
|
||||||
|
else:
|
||||||
|
d[k] = v
|
||||||
|
return d
|
||||||
|
|
||||||
|
|
||||||
#Django keeps giving: exception=OperationalError('the connection is closed')
|
#Django keeps giving: exception=OperationalError('the connection is closed')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user