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) |
