fields.Model se adiciona __default_set__ para remplaza comportamiento de asignacion directa

FossilOrigin-Name: 436c5483cf534c8d457fb403302e511e7aad4b220d66569612f7ceb2da8d8cf8
This commit is contained in:
bit4bit
2021-06-24 01:37:05 +00:00
parent a015a9361b
commit 58e7387292
4 changed files with 24 additions and 2 deletions

View File

@@ -31,6 +31,12 @@ class ModelBase(object, metaclass=ModelMeta):
def __before_xml__(self):
pass
def __default_set__(self, value):
return str(value)
def _set_content(self, value):
self._text = str(self.__default_set__(value))
def _hook_before_xml(self):
self.__before_xml__()
for field in self._fields.values():

View File

@@ -29,7 +29,7 @@ class Many2One(Field):
if callable(setter):
setter(inst_model, value)
else:
inst_model._text = str(value)
inst_model._set_content(value)

View File

@@ -14,7 +14,7 @@ class Model(Field):
def __set__(self, inst, value):
obj = self._create_model(inst)
obj._text = str(value)
obj._set_content(value)
def _create_model(self, inst):
try: