From: Imri G. <lor...@gm...> - 2009-06-15 15:56:15
|
Hi I had some trouble with cascade='null' not being acted on when using deleteMany instead of destroySelf. I managed to reproduce it with a simple example. When running the following code: from sqlobject import * class Abc(SQLObject): field1 = StringCol() final = ForeignKey('Abc', cascade='null') sources = MultipleJoin('Abc', joinColumn = 'finalID') def main(): conn = connectionForURI('sqlite:/:memory:') sqlhub.processConnection = conn #Abc._connection.debug = True Abc.createTable() a1 = Abc(field1='hello', final = None) a2 = Abc(field1='goodbye', final = a1) a3 = Abc(field1='gram', final = None) a4 = Abc(field1='shmidt', final = a3) a3.destroySelf() Abc.deleteMany(Abc.q.field1=='hello') print list(Abc.select()) if __name__ == '__main__': main() The output is: [<Abc 2 field1='goodbye' finalID=1>, <Abc 4 field1='shmidt' finalID=None>] I would expect that both objects would have finalID set to None. I'd appreciate any help with this. Cheers, Imri -- Imri Goldberg -------------------------------------- www.algorithm.co.il/blogs/ -------------------------------------- -- insert signature here ---- |