Author: phd
Date: 2005-06-10 12:48:30 +0000 (Fri, 10 Jun 2005)
New Revision: 813
Modified:
trunk/SQLObject/sqlobject/col.py
trunk/SQLObject/sqlobject/dbconnection.py
Log:
Save the original value in BinaryValidator.fromPython() and return it in toPython().
Modified: trunk/SQLObject/sqlobject/col.py
===================================================================
--- trunk/SQLObject/sqlobject/col.py 2005-06-10 10:22:44 UTC (rev 812)
+++ trunk/SQLObject/sqlobject/col.py 2005-06-10 12:48:30 UTC (rev 813)
@@ -936,12 +936,15 @@
if module.__name__ == "sqlite":
value = module.decode(value)
return value
+ if isinstance(value, state.soObject._connection._binaryType):
+ return self._origValue
raise validators.InvalidField("expected a string in the BLOBCol '%s', got %s instead" % \
(self.name, type(value)), value, state)
def fromPython(self, value, state):
if value is None:
return None
+ self._origValue = value # store the original value
return state.soObject._connection.createBinary(value)
class SOBLOBCol(SOStringCol):
Modified: trunk/SQLObject/sqlobject/dbconnection.py
===================================================================
--- trunk/SQLObject/sqlobject/dbconnection.py 2005-06-10 10:22:44 UTC (rev 812)
+++ trunk/SQLObject/sqlobject/dbconnection.py 2005-06-10 12:48:30 UTC (rev 813)
@@ -209,6 +209,7 @@
self._pool = []
self._poolLock = threading.Lock()
DBConnection.__init__(self, **kw)
+ self._binaryType = type(self.module.Binary(''))
def _runWithConnection(self, meth, *args):
conn = self.getConnection()
|