[Zope] question about displaying object content in page template

Paul Winkler pw_lists at slinkp.com
Tue Aug 24 15:51:56 EDT 2004


On Tue, Aug 24, 2004 at 05:47:48PM +0000, Andras Frankel wrote:
> 
> Hello, 
> 
> I would like to ask for help concerning page templates.
> 
> I created two classes.  First one is called "CatPageTemp", and it has the
> property "MyContent" of type TextArea.  MyContent contains HTML encoded
> text.
> 
> The second class is called "PageLayout", and has a property called
> "ModNames" of type tokens.  ModNames contains a list of objects of type
> CatPageTemp that reside in folder /SSS/priv.  Note that the folder name is
> not explicitly stored in ModNames.
> 
> I created a page_template called index_html in PageLayout, whose goal is
> to iterate through the object names in ModNames and display the content of
> their "MyContent".  Here is the code:
> 
> <ul>
> <span tal:repeat="item template/ModNames">
> <li tal:content="item"></li>
> <span tal:define="file python:'/root/SSS/priv/' + item"
>       tal:condition="exists:file/MyContent"
>       tal:replace="structure file/MyContent"></span>
> </span>
> </ul>
> 
> Now, that doesn't work.  Zope believes that file/MyContent doesn't exist, even 
> though it does.  I tried displaying the value of the 
> attribute/variable (?) "file"

It's a variable that you defined.

> , and it indeed is 
> /root/SSS/priv/<some_object> which is correct.

Ah, but it's a string.
     
> Can somebody tell me what's wrong and help me how to fix this?

You have created a path, "/root/SSS/priv/foo"
and IIUC you want to show the content of the object at that path.
The path is just a string and you need to resolve it to an object.
Try something like this:

  <span tal:define="file_path python:'/root/SSS/priv/' + item;
                    file python:container.restrictedTraverse(file_path)"
        tal:condition="exists:file/MyContent"
        tal:replace="structure file/MyContent"></span>
 </span>


-- 

Paul Winkler
http://www.slinkp.com


More information about the Zope mailing list