se adiciona field.Function
FossilOrigin-Name: 45a288bc30ad9b25fed59cd01c89bd2f7632926083384a7853c3b753a4d7f95b
This commit is contained in:
		| @@ -28,7 +28,18 @@ class ModelBase(object, metaclass=ModelMeta): | ||||
|     def __getitem__(self, key): | ||||
|         return self._xml_attributes[key] | ||||
|  | ||||
|     def __before_xml__(self): | ||||
|         pass | ||||
|  | ||||
|     def _hook_before_xml(self): | ||||
|         self.__before_xml__() | ||||
|         for field in self._fields.values(): | ||||
|             if hasattr(field, '__before_xml__'): | ||||
|                 field.__before_xml__() | ||||
|  | ||||
|     def to_xml(self): | ||||
|         self._hook_before_xml() | ||||
|  | ||||
|         tag = self.__name__ | ||||
|         ns = '' | ||||
|         if self._namespace_prefix is not None: | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| from .attribute import Attribute | ||||
| from .many2one import Many2One | ||||
| from .model import Model | ||||
| from .function import Function | ||||
|  | ||||
| __all__ = [Attribute, Many2One, Model] | ||||
|   | ||||
| @@ -19,3 +19,9 @@ class Field: | ||||
|         if name not in namespaces: | ||||
|             raise KeyError("namespace %s not found" % (name)) | ||||
|         inst._namespace_prefix = name | ||||
|  | ||||
|     def _call(self, inst, method, *args): | ||||
|         call = getattr(inst, method or '', None) | ||||
|  | ||||
|         if callable(call): | ||||
|             return call(*args) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user