Changeset 480 for elixir/trunk/elixir/entity.py
- Timestamp:
- 09/30/09 14:58:16 (2 years ago)
- Files:
-
- 1 modified
-
elixir/trunk/elixir/entity.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
elixir/trunk/elixir/entity.py
r466 r480 34 34 35 35 __doc_all__ = ['Entity', 'EntityMeta'] 36 37 38 def session_mapper_factory(scoped_session): 39 def session_mapper(cls, *args, **kwargs): 40 if kwargs.pop('save_on_init', True): 41 old_init = cls.__init__ 42 def __init__(self, *args, **kwargs): 43 old_init(self, *args, **kwargs) 44 scoped_session.add(self) 45 cls.__init__ = __init__ 46 cls.query = scoped_session.query_property() 47 return mapper(cls, *args, **kwargs) 48 return session_mapper 36 49 37 50 … … 441 454 self.entity.mapper = mapper(self.entity, *args, **kwargs) 442 455 elif isinstance(self.session, ScopedSession): 443 se lf.entity.mapper = self.session.mapper(self.entity,444 *args, **kwargs)456 session_mapper = session_mapper_factory(self.session) 457 self.entity.mapper = session_mapper(self.entity, *args, **kwargs) 445 458 else: 446 459 raise Exception("Failed to map entity '%s' with its table or "
