With some help from the kind folks on #zope, this has been solved. "Michael R. Bernstein" wrote:
Here is what I've done:
ArchiveImages (Specialist) defaultRack traversal_method (Python Script) traversal (SkinScript) Renderings (sub-Specialist) defaultRack
This was wrong in a couple of ways, here is how it needs to be layed out: ArchiveImages (Specialist) traversal_method (Python Script) defaultRack traversal (SkinScript) Renderings (sub-Specialist) defaultRack As you can see, the Python Method needed to be moved from within the Rack up into the Specialist.
traversal_method has 'REQUEST, name' as parameters, and the following body:
return getattr(container.Renderings, name)
The body of the traversal_method needed to change in two ways: if name in ['index_html', 'editInstanceForm', 'editInstance']: return getattr(context, name) else: return container.Renderings.getItem(name) First, it needed to pass unmolested those methods of the ArchiveImage that were needed. Second, Specialists apparently don't support getattr(), so I needed to change this to call getItem() instead.
The 'traversal' SkinScript has the following body:
WITH SELF COMPUTE __bobo_traverse__=traversal_method
The SkinScript works fine as-is. HTH, Michael Bernstein.