14 Dec
2007
14 Dec
'07
6:29 p.m.
how do I automatically create some needed object at application startup? Do it by subscribing to IDatabaseOpenedWithRootEvent (from zope.app.appsetup) Example code: @adapter(IDatabaseOpenedWithRootEvent) def CreateMyContainer(event): conn = event.database.open() root = conn.root()['Application'] if 'mycontainer' not in root: root['mycontainer'] = MyContainer() transaction.commit() conn.close() Then register this subscriber in your configure.zcml: <subscriber handler="myapp.CreateMyContainer" />