[Zope] Calling objects with a dot in them

J Cameron Cooper jccooper at jcameroncooper.com
Sun Oct 5 16:21:05 EDT 2003


>
>
>>> I add a ErrCode variable to register.zpt. So in fact it redirects to 
>>> "http://example.com/register.zpt?ErrCode=nouser".
>>> Now I want to add some HTML Code to the register.zpt with ZPT if 
>>> ErrCode has the value "nouser". The problem is that ErrCode is not 
>>> given in all cases. How can I do that? I suppose something with 
>>> tal:condition but I don't really know how..
>>
>> One way might be:
>>
>> <span tal:condition="python:request['ErrCode']=='nouser'" 
>> tal:on-error="nothing">A!</span>
>>
>> The span, of course, can be any tag, or go away with a tal:omit-tag.
>
> Thats about that what I do.
> I first define assign a variable:
>
> tal:define="ErrCode REQUEST/ErrCode|string:'noerror'"
>
> And then test with:
>
> <font size="-1" color="red" tal:condition="python: 
> ErrCode=='noname'">A!!</font>
>
> But the A! is always there, even if no ErrCode is provided. What's wrong?

Took me a moment to figure it out, but it's really dead obvious, as you 
would have seen had you tried the define without the string fallback. 
There is no such thing as 'REQUEST'. The built-in name for the request 
object in a TALES expression is 'request'. As in lower case. Use that 
instead and it works fine.

            --jcc




More information about the Zope mailing list