The Zope Developer's Guide and the API docs (Zope 2.5) present
different stories about how to add things to object managers.  I don't
really follow what the API stuff is doing.  This is a request for

Devguide says do
def addFunction(dispatcher, id):
   "Create object and add to self"
   p = SomeProduct(id)
   dispatcher.Destination()._setObject(id, p)

This makes sense, though, as commented at,
it relies on a private, undocumented method.  addFunction is in outer
scope of a module, and is hooked up wtih various calls in

On the other hand, the ObjectManager API says to do
self.manage_addProduct['OFSP'].manage_addFolder(id, title).

First, what scope should that be done in?  Second, this seems to
create one product (OFSP) and then add a folder to it, so that it
creates two, nested products.

The API for Folder mentions manage_addFolder as a constructor, but
again the scope is unclear to me.  Presumably it needs to know what to
add it to, but that is not passed in.

Finally, the use of id in two places in the first code snippet (one
apparently associated with the container, the other with the object)
seems like an invitation to trouble.  Why is it done that way?

One reason I want to know this is that I'm considering having a
container that would automatically label (or set id) of its contents
(e.g., 'a' is first, 'b' is second....).

Thanks for any light you can shed.

Zope-Dev maillist  -  [EMAIL PROTECTED]
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to