summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/state.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2013-11-19 19:16:26 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2013-11-19 19:16:26 -0500
commit63508b82cd5710c660383bcac5fcfd3bb6af83c1 (patch)
treed1d37de872d048d2beff170dac5324394ec58e99 /lib/sqlalchemy/orm/state.py
parent452ce0c2e7fae13a569341cbbe6f3a988c0c6360 (diff)
downloadsqlalchemy-63508b82cd5710c660383bcac5fcfd3bb6af83c1.tar.gz
- The ``viewonly`` flag on :func:`.relationship` will now prevent
attribute history from being written on behalf of the target attribute. This has the effect of the object not being written to the Session.dirty list if it is mutated. Previously, the object would be present in Session.dirty, but no change would take place on behalf of the modified attribute during flush. The attribute still emits events such as backref events and user-defined events and will still receive mutations from backrefs. [ticket:2833]
Diffstat (limited to 'lib/sqlalchemy/orm/state.py')
-rw-r--r--lib/sqlalchemy/orm/state.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/state.py b/lib/sqlalchemy/orm/state.py
index 957e29700..ddd991acc 100644
--- a/lib/sqlalchemy/orm/state.py
+++ b/lib/sqlalchemy/orm/state.py
@@ -415,6 +415,8 @@ class InstanceState(interfaces._InspectionAttr):
return None
def _modified_event(self, dict_, attr, previous, collection=False):
+ if not attr.send_modified_events:
+ return
if attr.key not in self.committed_state:
if collection:
if previous is NEVER_SET: