diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-12-02 12:13:57 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-12-02 12:13:57 -0500 |
| commit | 935bc34dc50d5e4bdf181a8287d6e4cdbde073d0 (patch) | |
| tree | e9eba984da6f31639918eb1dfe0e21253995b6c9 /lib/sqlalchemy/orm/dependency.py | |
| parent | 9695faf32981406b12a6468b98d5c9b673f8e219 (diff) | |
| download | sqlalchemy-935bc34dc50d5e4bdf181a8287d6e4cdbde073d0.tar.gz | |
- Fixed issue where post_update on a many-to-one relationship would
fail to emit an UPDATE in the case where the attribute were set to
None and not previously loaded.
fixes #3599
Diffstat (limited to 'lib/sqlalchemy/orm/dependency.py')
| -rw-r--r-- | lib/sqlalchemy/orm/dependency.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/sqlalchemy/orm/dependency.py b/lib/sqlalchemy/orm/dependency.py index d8989939b..f3325203e 100644 --- a/lib/sqlalchemy/orm/dependency.py +++ b/lib/sqlalchemy/orm/dependency.py @@ -303,9 +303,9 @@ class DependencyProcessor(object): set ) - def _post_update(self, state, uowcommit, related): + def _post_update(self, state, uowcommit, related, is_m2o_delete=False): for x in related: - if x is not None: + if not is_m2o_delete or x is not None: uowcommit.issue_post_update( state, [r for l, r in self.prop.synchronize_pairs] @@ -740,7 +740,9 @@ class ManyToOneDP(DependencyProcessor): self.key, self._passive_delete_flag) if history: - self._post_update(state, uowcommit, history.sum()) + self._post_update( + state, uowcommit, history.sum(), + is_m2o_delete=True) def process_saves(self, uowcommit, states): for state in states: |
