diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-12-14 01:34:06 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-12-14 01:34:06 +0000 |
| commit | cd464c7aac765f65c032cf1f6a6a59010b7f1607 (patch) | |
| tree | ed728f61ad864116c9051e3461eeae52d656aa45 /lib | |
| parent | a8024fffce6493e4a784c1dfa2f63e12471bb681 (diff) | |
| download | sqlalchemy-cd464c7aac765f65c032cf1f6a6a59010b7f1607.tar.gz | |
- merged r6553 from trunk
- Session.merge() now properly overwrites a many-to-one or
uselist=False attribute to None if the attribute
is also None in the given object to be merged.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/orm/properties.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index e874e3747..e3ecad3b1 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -665,11 +665,13 @@ class RelationProperty(StrategizedProperty): if current is not None: _recursive[(current, self)] = True obj = session._merge(current, dont_load=dont_load, _recursive=_recursive) - if obj is not None: - if dont_load: - dest_state.dict[self.key] = obj - else: - setattr(dest, self.key, obj) + else: + obj = None + + if dont_load: + dest_state.dict[self.key] = obj + else: + setattr(dest, self.key, obj) def cascade_iterator(self, type_, state, visited_instances, halt_on=None): if not type_ in self.cascade: |
