this is my first zope app... i am trying to figure out how to create an object in a particular folder via script, when my current object may not be in the right tree...
I tried to do a 'change folder' via restrictedTraverse (eg context.getRestrictedTraverse('/myapp/myfolder'), and then create the
object using manage_addProduct... but it dosnt seem to work. any tips?
The manage_addProduct method creates an object in the context in which is was called. Which is to say, the object it is called on. If you say context.manage_addProduct(...) you're creating an object on the current object (or the current object's container.)
The restrictedTraverse method gets and returns some object; it does not "change folders". (The API note reads: "Return the object obtained by traversing the given path from the object on which the method was called, performing security checks along the way.") You're thinking file-system-wise, and that doesn't work here. Think objects.
(Note: I don't think 'getRestrictedTraverse' exists. 'restrictedTraverse' on the other hand, definitely does.)
What you want to do, then, is call manage_addProduct on the object returned by restrictedTraverse::
Of course, you can also get a certain folder via acquisition::
unless you're getting paths dynamically.
Zope maillist - Zope@zope.org
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce