diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-04-07 17:56:01 -0400 | 
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-04-07 17:56:01 -0400 | 
| commit | a645032262afc41cd39a85c9f56388341346a995 (patch) | |
| tree | 4ac392277e3075e27d75c28017ad1e7902a32d3a /lib/sqlalchemy/orm/state.py | |
| parent | fbf0c60800e0f01fc872c0770dc0fa1ed1b20cd0 (diff) | |
| download | sqlalchemy-a645032262afc41cd39a85c9f56388341346a995.tar.gz | |
- Some fixes to the state handling regarding
backrefs, typically when autoflush=False, where
the back-referenced collection wouldn't
properly handle add/removes with no net
change.  Thanks to Richard Murri for the
test case + patch.  [ticket:2123]
(also in 0.6.7).
Diffstat (limited to 'lib/sqlalchemy/orm/state.py')
| -rw-r--r-- | lib/sqlalchemy/orm/state.py | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/state.py b/lib/sqlalchemy/orm/state.py index e29c5c03a..00582fbdb 100644 --- a/lib/sqlalchemy/orm/state.py +++ b/lib/sqlalchemy/orm/state.py @@ -547,10 +547,12 @@ class PendingCollection(object):      def append(self, value):          if value in self.deleted_items:              self.deleted_items.remove(value) -        self.added_items.add(value) +        else: +            self.added_items.add(value)      def remove(self, value):          if value in self.added_items:              self.added_items.remove(value) -        self.deleted_items.add(value) +        else: +            self.deleted_items.add(value)  | 
