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
Zope maillist  -  Zope@zope.org
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to