diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-08-16 23:10:56 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-08-16 23:10:56 +0000 |
| commit | dd9d9bd9be50fd5e64da43cbfeb088593baee103 (patch) | |
| tree | a66c784d03014c70bd221c5891a4f23aa62ec24d /lib/sqlalchemy/orm/dependency.py | |
| parent | 8e08949eb57592f4e3b3c1c8b92ef8935c150df7 (diff) | |
| download | sqlalchemy-dd9d9bd9be50fd5e64da43cbfeb088593baee103.tar.gz | |
- fixed primary key update for many-to-many collections
where the collection had not been loaded yet
[ticket:1127]
Diffstat (limited to 'lib/sqlalchemy/orm/dependency.py')
| -rw-r--r-- | lib/sqlalchemy/orm/dependency.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/dependency.py b/lib/sqlalchemy/orm/dependency.py index a68cdafb5..5fcaa4ab0 100644 --- a/lib/sqlalchemy/orm/dependency.py +++ b/lib/sqlalchemy/orm/dependency.py @@ -433,7 +433,10 @@ class ManyToManyDP(DependencyProcessor): uowcommit.attributes[(self, "manytomany", state, child)] = True secondary_delete.append(associationrow) - if not self.passive_updates and unchanged and self._pks_changed(uowcommit, state): + if not self.passive_updates and self._pks_changed(uowcommit, state): + if not unchanged: + (added, unchanged, deleted) = uowcommit.get_attribute_history(state, self.key, passive=False) + for child in unchanged: associationrow = {} sync.update(state, self.parent, associationrow, "old_", self.prop.synchronize_pairs) |
