diff options
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/orm/instrumentation.py | 1 | ||||
| -rw-r--r-- | lib/sqlalchemy/orm/mapper.py | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/instrumentation.py b/lib/sqlalchemy/orm/instrumentation.py index c17f8ab8d..5a96c57cf 100644 --- a/lib/sqlalchemy/orm/instrumentation.py +++ b/lib/sqlalchemy/orm/instrumentation.py @@ -519,6 +519,7 @@ def __init__(%(apply_pos)s): exec(func_text, env) __init__ = env['__init__'] __init__.__doc__ = original__init__.__doc__ + __init__._sa_original_init = original__init__ if func_defaults: __init__.__defaults__ = func_defaults diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py index 9ce848799..cd9e00b8b 100644 --- a/lib/sqlalchemy/orm/mapper.py +++ b/lib/sqlalchemy/orm/mapper.py @@ -1243,6 +1243,10 @@ class Mapper(InspectionAttr): event.listen(manager, 'init', _event_on_init, raw=True) for key, method in util.iterate_attributes(self.class_): + if key == '__init__' and hasattr(method, '_sa_original_init'): + method = method._sa_original_init + if isinstance(method, types.MethodType): + method = method.im_func if isinstance(method, types.FunctionType): if hasattr(method, '__sa_reconstructor__'): self._reconstructor = method |
