Hello All,
Just started using SQLObject yesterday, so if I made a rookie mistake
please tell me. It appears SQLObject doesn't allow me to have the same
column name as my table name. Here is the MySQL table definition:
CREATE TABLE `sysname` (
`sysname_id` int(11) NOT NULL auto_increment,
`sysname` varchar(64) NOT NULL,
PRIMARY KEY (`sysname_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
And the corresponding SQLObject code:
class Sysname(SQLObject):
class sqlmeta:
fromDatabase = True
idName = "sysname_id"
def getSysnameID(cls):
sysname = platform.system()
for s in cls.selectBy(sysname=sysname):
return s.id
return cls(sysname=sysname).id
getSysnameID = classmethod(getSysnameID)
print Sysname.getSysnameID()
I get the following traceback from SQLObject:
Traceback (most recent call last):
File "knightly/machine.py", line 22, in ?
print Sysname.getSysnameID()
File "knightly/machine.py", line 16, in getSysnameID
for s in cls.selectBy(sysname=sysname):
File
"/Users/coleb/svn_knightly/trunk/backend/knightly/lib/sqlobject/sresults.py",
line 185, in __iter__
return iter(list(self.lazyIter()))
File
"/Users/coleb/svn_knightly/trunk/backend/knightly/lib/sqlobject/sresults.py",
line 193, in lazyIter
return conn.iterSelect(self)
File
"/Users/coleb/svn_knightly/trunk/backend/knightly/lib/sqlobject/dbconnection.py",
line 400, in iterSelect
select, keepConnection=False)
File
"/Users/coleb/svn_knightly/trunk/backend/knightly/lib/sqlobject/dbconnection.py",
line 636, in __init__
self.query = self.dbconn.queryForSelect(select)
File
"/Users/coleb/svn_knightly/trunk/backend/knightly/lib/sqlobject/dbconnection.py",
line 414, in queryForSelect
return self.sqlrepr(select.queryForSelect())
File
"/Users/coleb/svn_knightly/trunk/backend/knightly/lib/sqlobject/sresults.py",
line 45, in queryForSelect
columns = [self.sourceClass.q.id] + [getattr(self.sourceClass.q,
x.name) for x in self.sourceClass.sqlmeta.columnList]
File
"/Users/coleb/svn_knightly/trunk/backend/knightly/lib/sqlobject/sqlbuilder.py",
line 386, in __getattr__
return self._getattrFromForeignKey(column, attr)
File
"/Users/coleb/svn_knightly/trunk/backend/knightly/lib/sqlobject/sqlbuilder.py",
line 403, in _getattrFromForeignKey
ret = getattr(self, column.name)==getattr(self.soClass,
'_SO_class_'+column.foreignKey).q.id
TypeError: cannot concatenate 'str' and 'NoneType' objects
If I change the column's name `sysname` to `name` and change the code
accordingly everything works fine. Is this a feature or a bug?
Thanks,
Brian
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
sqlobject-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss