diff options
Diffstat (limited to 'lib/sqlalchemy/ext/associationproxy.py')
-rw-r--r-- | lib/sqlalchemy/ext/associationproxy.py | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/sqlalchemy/ext/associationproxy.py b/lib/sqlalchemy/ext/associationproxy.py index e62958b49..a4786de42 100644 --- a/lib/sqlalchemy/ext/associationproxy.py +++ b/lib/sqlalchemy/ext/associationproxy.py @@ -243,10 +243,7 @@ class AssociationProxy(interfaces._InspectionAttr): if self.scalar: target = getattr(obj, self.target_collection) - if target is not None: - return self._scalar_get(target) - else: - return None + return self._scalar_get(target) else: try: # If the owning instance is reborn (orm session resurrect, @@ -291,7 +288,8 @@ class AssociationProxy(interfaces._InspectionAttr): def _default_getset(self, collection_class): attr = self.value_attr - getter = operator.attrgetter(attr) + _getter = operator.attrgetter(attr) + getter = lambda target: _getter(target) if target is not None else None if collection_class is dict: setter = lambda o, k, v: setattr(o, attr, v) else: |