Thread: [SQL-CVS] r845 - trunk/SQLObject/sqlobject/postgres
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2005-07-20 15:00:59
|
Author: phd Date: 2005-07-20 15:00:52 +0000 (Wed, 20 Jul 2005) New Revision: 845 Modified: trunk/SQLObject/sqlobject/postgres/pgconnection.py Log: Applied the patch N 1239578. Modified: trunk/SQLObject/sqlobject/postgres/pgconnection.py =================================================================== --- trunk/SQLObject/sqlobject/postgres/pgconnection.py 2005-07-20 14:55:52 UTC (rev 844) +++ trunk/SQLObject/sqlobject/postgres/pgconnection.py 2005-07-20 15:00:52 UTC (rev 845) @@ -205,9 +205,12 @@ continue colClass, kw = self.guessClass(t) kw['name'] = soClass.sqlmeta.style.dbColumnToPythonAttr(field) + kw['dbName'] = field kw['notNone'] = notnull if defaultstr is not None: - kw['default'] = getattr(sqlbuilder.const, defaultstr) + kw['default'] = self.defaultFromSchema(colClass, defaultstr) + elif not notnull: + kw['default'] = None if keymap.has_key(field): kw['foreignKey'] = keymap[field] results.append(colClass(**kw)) @@ -232,6 +235,18 @@ else: return col.Col, {} + def defaultFromSchema(self, colClass, defaultstr): + """ + If the default can be converted to a python constant, convert it. + Otherwise return is as a sqlbuilder constant. + """ + if colClass == col.BoolCol: + if defaultstr == 'false': + return False + elif defaultstr == 'true': + return True + return getattr(sqlbuilder.const, defaultstr) + def server_version(self): if self._server_version is None: # The result is something like |