Author: phd
Date: 2007-07-19 07:17:27 -0600 (Thu, 19 Jul 2007)
New Revision: 2764
Modified:
SQLObject/branches/0.9/docs/News.txt
SQLObject/branches/0.9/sqlobject/main.py
Log:
A patch by Andy Grover <an...@gr...>:
Suppress the second RowUpdateSignal in .set() called from ._SO_setValue().
Modified: SQLObject/branches/0.9/docs/News.txt
===================================================================
--- SQLObject/branches/0.9/docs/News.txt 2007-07-19 13:16:36 UTC (rev 2763)
+++ SQLObject/branches/0.9/docs/News.txt 2007-07-19 13:17:27 UTC (rev 2764)
@@ -72,6 +72,14 @@
* idName can be inherited from the parent sqlmeta class.
+SQLObject 0.8.5
+===============
+
+Small Features
+--------------
+
+* Suppress the second RowUpdateSignal in .set() called from ._SO_setValue().
+
SQLObject 0.8.4
===============
Modified: SQLObject/branches/0.9/sqlobject/main.py
===================================================================
--- SQLObject/branches/0.9/sqlobject/main.py 2007-07-19 13:16:36 UTC (rev 2763)
+++ SQLObject/branches/0.9/sqlobject/main.py 2007-07-19 13:17:27 UTC (rev 2764)
@@ -1044,7 +1044,11 @@
if not self.sqlmeta._creating:
self.sqlmeta.send(events.RowUpdateSignal, self, d)
if len(d) != 1 or name not in d:
- return self.set(**d)
+ # Already called RowUpdateSignal, don't call it again
+ # inside .set()
+ self.sqlmeta.row_update_sig_suppress = True
+ self.set(**d)
+ del self.sqlmeta.row_update_sig_suppress
value = d[name]
if from_python:
dbValue = from_python(value, self._SO_validatorState)
@@ -1066,7 +1070,7 @@
setattr(self, instanceName(name), value)
def set(self, **kw):
- if not self.sqlmeta._creating:
+ if not self.sqlmeta._creating and not getattr(self.sqlmeta, "row_update_sig_suppress", False):
self.sqlmeta.send(events.RowUpdateSignal, self, kw)
# set() is used to update multiple values at once,
# potentially with one SQL statement if possible.
|