[Zope] RE: [Zope-dev] manage_afterAdd and manage_beforeDelete
Brian Lloyd
Brian@digicool.com
Mon, 12 Jul 1999 11:52:40 -0400
> >Well, technically there is a constructor of sorts - the DTML method
> >or External method that is the target of the "Add" form for your
> >ZClass is basically the equivalent of a Python constructor
>
> I've been adding a method to my ZClasses called
> 'manage_afterAdd' (and often, 'manage_beforeDelete'), which
> are called by the ZClass framework, I think. It's really
> convenient, but I'm not entierly sure they're not reserved
> for internal uses. I haven't found anything that uses them yet.
>
> Mike Pelletier.
(I've CC'ed the lists on this, since it probably of interest
to other folks out there...)
Mike,
It probably a bad idea to try to use manage_afterAdd
as a handy constructor - the manage_afterAdd and manage_beforeDelete
methods are currently a lightweight solution for the fact that
there is no "event model" in Zope, but often objects will want
to perform some extra activities when they are added/deleted
(such as add or remove themselves from Catalogs).
The manage_afterAdd, in particular, could get you in trouble,
since it will also be called whenever an object cut/copied and
pasted to a new location. In that case the construction logic
would almost certainly not be appropriate, and could actually
run without raising an error, but re-initializing and wiping out
the existing data in your object in the process. :(
In general, the manage_afterAdd and manage_beforeDelete protocol
should be thought of as hooks for fixing up or cleaning up the
environment of an object on add/delete/cut/copy/paste events
(registering and unregistering with Catalogs, etc.).
Brian Lloyd brian@digicool.com
Software Engineer 540.371.6909
Digital Creations http://www.digicool.com