Hello. A simplified version of your program ---------- from datetime import datetime
class Usuario(SQLObject): name = StringCol(default=None) class TipoFerramenta(SQLObject): descricao = UnicodeCol(default=None) # Auditing incluidoPor = ForeignKey('Usuario', default=None, cascade=False) incluidoEm = DateTimeCol(default=datetime.now) alteradoPor = ForeignKey('Usuario', default=None, cascade=False) alteradoEm = DateTimeCol(default=datetime.now) Usuario.createTable() usuario = Usuario() TipoFerramenta.createTable() tipo_ferramenta = TipoFerramenta() tipo_ferramenta.set( descricao = 'descricao', alteradoPor = usuario, ) ---------- really runs two UPDATEs, but they are two different updates: 1/Query : UPDATE tipo_ferramenta SET alterado_por_id = (1) WHERE id = (1) 1/QueryR : UPDATE tipo_ferramenta SET alterado_por_id = (1) WHERE id = (1) 1/COMMIT : auto 1/Query : UPDATE tipo_ferramenta SET descricao = ('descricao') WHERE id = (1) 1/QueryR : UPDATE tipo_ferramenta SET descricao = ('descricao') WHERE id = (1) 1/COMMIT : auto The first one updates foreign key. PS. I hope you understand the difference between alteradoEm = DateTimeCol(default=datetime.now) and alteradoEm = DateTimeCol(default=datetime.now()) Oleg. -- Oleg Broytmann http://phd.pp.ru/ [EMAIL PROTECTED] Programmers don't die, they just GOSUB without RETURN. ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ sqlobject-discuss mailing list sqlobject-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss