On Thu, Dec 01, 2005 at 07:40:38AM +0000, Chris Withers wrote: > Jonathan Cyr wrote: > >You might want to use index_html rather than index.html in this > >example. The dot means other things in Python, and index.html is a > >carryover from filesystem webservers. My impression is that the > >acquisition mechanism doesn't like ids with a dot, in some circumstances. > > Acquisition works fine irrespective of the object id. > And dotted or dashed names work fine in ZPT path: > > tal:content="here/my-folder/index.html/title" > > If you use python, most objectmanagers support dictionary-like notation: > > tal:content="python:here['my-folder']['index.html'].title" > > ...and if you object doesn't support dictionary-like notation, you can > use getattr: > > getattr(getattr(here,'my-folder'),'index.html').title > > And getattr performs Acquisition just fine...
... but __getitem__ doesn't :-) So here['my-folder']['index.html'] is semantically different from getattr(getattr(here, 'my-folder'), 'index.html'). The former works strictly by local containment and does not use acquisition. The latter may use acquisition. I know Chris knows this, but maybe other people following along don't. p.s. "here" should be deprecated, use "context" instead. -- Paul Winkler http://www.slinkp.com _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )