"Andrew M. Kuchling" wrote:
I want to write an object that can be traversed by ZPublisher. The goal is so I can write URLs like thingyForwarder/45/display, to get an object corresponding to thingy #45, and call its display() method.
What's the Zope Zen way of doing this? Implement an __of__ method for acquisition? Implement a __bobo_traverse__ method? Make thingyForwarder a Folderish object and implement all the folder methods?
Take yer pick. ZPublisher will try the following methods to traverse an object, in this order: __bobo_traverse__(request, name) Request is, suprise, the REQUEST object, and 'name' is the path element ZPublisher is trying to traverse to. getattr ZPublisher will try and get the subobject by 'name' with getattr. If this fails with an Attribute error then... getitem ZPublisher will try to get the subobject by 'name' with getitem. If this fails, you get a 404. -Michel