From: Rajeev J S. <raj...@di...> - 2005-05-13 00:40:13
|
Hi, I can see that doing for instance, from sqlobject import * class A(SQLObject): name = StringCol(default='') print A.q.id == 0 prints (a.id = 0) But: >>> A.q.name.startswith('hello') Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/lib/python2.4/site-packages/sqlobject/sqlbuilder.py", line 155, in __repr__ return self.__sqlrepr__(None) File "/usr/lib/python2.4/site-packages/sqlobject/sqlbuilder.py", line 222, in __sqlrepr__ return "(%s %s %s)" % (sqlrepr(self.expr1, db), self.op, sqlrepr(self.expr2, db)) File "/usr/lib/python2.4/site-packages/sqlobject/converters.py", line 189, in sqlrepr return reprFunc(db) File "/usr/lib/python2.4/site-packages/sqlobject/sqlbuilder.py", line 581, in __sqlrepr__ s = sqlrepr(self.expr, db)[1:-1] # remove quotes File "/usr/lib/python2.4/site-packages/sqlobject/converters.py", line 187, in sqlrepr return converter(obj, db) File "/usr/lib/python2.4/site-packages/sqlobject/converters.py", line 98, in StringLikeConverter assert 0, "Database %s unknown" % db AssertionError: Database None unknown I guess this is because SQLObject is unaware of the db type and so can't generate the right SQL for .startswith(). Is there some intermediate representation for the query, or some way in which we can specify a database type, without providing a connection, so that such queries can be sent across to the (Twisted) server for execution ? In general, given a database application (say, PostgreSQL), is there any way to use SQLObject on the client side as an OR mapping database (for generating queries, proxies, etc), rather than for use to actually connect to the db and retrieve instances ? Rajeev J Sebastian |