diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-12-07 16:31:12 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-12-07 16:31:12 +0000 |
commit | 3715e10bf82786920bf8c018a99221f0d1713b3d (patch) | |
tree | 6d8f6ce6430751d00f77330635ea2bc4aa69de9d /lib/sqlalchemy/orm/dynamic.py | |
parent | 7ca47975377e3c64c734cae946708a2bdfb665c2 (diff) | |
download | sqlalchemy-3715e10bf82786920bf8c018a99221f0d1713b3d.tar.gz |
- also with dynamic, implemented correct count() behavior as well
as other helper methods.
Diffstat (limited to 'lib/sqlalchemy/orm/dynamic.py')
-rw-r--r-- | lib/sqlalchemy/orm/dynamic.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/dynamic.py b/lib/sqlalchemy/orm/dynamic.py index f5662a933..e55703c42 100644 --- a/lib/sqlalchemy/orm/dynamic.py +++ b/lib/sqlalchemy/orm/dynamic.py @@ -74,7 +74,11 @@ class AppenderQuery(Query): return None else: return sess - + + def _get_session(self): + return self.__session() + session = property(_get_session) + def __iter__(self): sess = self.__session() if sess is None: @@ -88,7 +92,14 @@ class AppenderQuery(Query): return self.attr.get_history(self.state, passive=True)._added_items.__getitem__(index) else: return self._clone(sess).__getitem__(index) - + + def count(self): + sess = self.__session() + if sess is None: + return len(self.attr.get_history(self.state, passive=True)._added_items) + else: + return self._clone(sess).count() + def _clone(self, sess=None): # note we're returning an entirely new Query class instance here # without any assignment capabilities; |