From 4793a1a029b31f7943b860b60aec85127e944aa3 Mon Sep 17 00:00:00 2001 From: Diogo Dutra Date: Thu, 29 Sep 2016 19:59:34 -0300 Subject: Fixed the persistent_to_deleted event Got a reference of the deleted instance before remove it from state. The old code always send a None instead the instance. --- lib/sqlalchemy/orm/session.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py index 4a65e0719..7da30f9c2 100644 --- a/lib/sqlalchemy/orm/session.py +++ b/lib/sqlalchemy/orm/session.py @@ -1643,13 +1643,14 @@ class Session(_SessionClassMethods): self.transaction._deleted[state] = True self.identity_map.safe_discard(state) + obj = state.obj() self._deleted.pop(state, None) state._deleted = True # can't call state._detach() here, because this state # is still in the transaction snapshot and needs to be # tracked as part of that if persistent_to_deleted is not None: - persistent_to_deleted(self, state.obj()) + persistent_to_deleted(self, obj) def add(self, instance, _warn=True): """Place an object in the ``Session``. -- cgit v1.2.1