[Zope-dev] ZPT trials and tribulations

Martijn Pieters mj@digicool.com
Fri, 16 Mar 2001 21:43:07 +0100


On Fri, Mar 16, 2001 at 04:59:16PM -0000, Phil Harris wrote:
> All,
> 
> I'm in the process of trying out the ZPT stuff(thanks to Duncan Booth for
> the win32 stuff).
> 
> Anyway up, It's all going according to plan but I have a few issues, maybe
> someone has a better idea than me what's wrong here.
> 
> <code starts here>
> 
> <?xml version="1.0" ?>
> <html xmlns:tal="http://xml.zope.org/namespaces/tal"
>       xmlns:metal="http://xml.zope.org/namespaces/metal">
>   <head>
>     <title tal:insert="here/title">The title</title>
>   </head>
>   <body>
>     <h2 tal:insert="here/title_or_id">the title</h2>
>     <div tal:define="ui python:container.userInfo()">
>       <b tal:replace="python:ui['dn']">crap</b>
>       <b tal:replace="python:ui['sn']">crap</b>
>       <b tal:replace="python:ui['cn']">crap</b>
>     </div>
>     <hr />
>     <a href="index_html">click here to refresh</a>
> 
>   </body>
> </html>
> 
> </code ends here>
> 
> The problem is that I'm getting a traceback (I won't bore you with the
> details unless I have to) to the effect of 'ui' being unknown.
> 
> If I replace the 'div' in the code above with:
> 
> <b tal:replace="python:container.userInfo()['dn']">crap</b>
> <b tal:replace="python:container.userInfo()['sn']">crap</b>
> <b tal:replace="python:container.userInfo()['cn']">crap</b>
> 
> then all works according to design, but with a lot more overhead.
> 
> btw, the userInfo method returns a dictionary of LDAP information, it works
> in all other contexts, so I don't think the problem is there.

As Ethan said, the release you are using doesn't yet support access to
defined variables in python.

Instead, try the following:

  <div tal:define="ui python:container.userInfo()">
    <b tal:replace="ui/dn">crap</b>
    <b tal:replace="ui/sn">crap</b>
    <b tal:replace="ui/cn">crap</b>
  </div>

It will be much more readable, and it removes a layer of interpretation
too.

-- 
Martijn Pieters
| Software Engineer  mailto:mj@digicool.com
| Digital Creations  http://www.digicool.com/
| Creators of Zope   http://www.zope.org/
---------------------------------------------