diff options
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/ext/associationproxy.py | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/lib/sqlalchemy/ext/associationproxy.py b/lib/sqlalchemy/ext/associationproxy.py index acf13df46..1c28b10a1 100644 --- a/lib/sqlalchemy/ext/associationproxy.py +++ b/lib/sqlalchemy/ext/associationproxy.py @@ -14,7 +14,6 @@ See the example ``examples/association/proxied_association.py``. """ import operator -import weakref from .. import exc, orm, util from ..orm import collections, interfaces from ..sql import or_ @@ -637,22 +636,17 @@ class AssociationProxyInstance(object): class _lazy_collection(object): def __init__(self, obj, target): - self.ref = weakref.ref(obj) + self.parent = obj self.target = target def __call__(self): - obj = self.ref() - if obj is None: - raise exc.InvalidRequestError( - "stale association proxy, parent object has gone out of " - "scope") - return getattr(obj, self.target) + return getattr(self.parent, self.target) def __getstate__(self): - return {'obj': self.ref(), 'target': self.target} + return {'obj': self.parent, 'target': self.target} def __setstate__(self, state): - self.ref = weakref.ref(state['obj']) + self.parent = state['obj'] self.target = state['target'] |
