[Zope] Acquisition Problem ?
Richard Moon
richard@dcs.co.uk
Sun, 11 Mar 2001 11:10:23 +0000
Thanks for the help
But what we have here is an object, a dtml method, which behaves completely
differently depending on how it is referenced.
Can anyone tell me why that is a good thing ? To me it seems a very bad thing.
- that's the thing with Zope - going along fine then it does something
completely irrational.
At 19:47 09/03/01, you wrote:
>You have an instance of variable-clobbering. abc_text is acquired from the
>dtml-let inside mydtml_1. You have set the value in REQUEST, but REQUEST is
>at the bottom of the list when variable names are looked up. This is
>explained on page 15 of the Document Template Markup Language Reference.
>Unfortunately, I can't find a link for it.
>
>Ok, I found it in the Zope Book
>http://www.zope.org/Members/michel/ZB/AdvDTML.dtml
>First section.
>
>Troy
>
>-----Original Message-----
>From: Richard Moon [mailto:richard@dcs.co.uk]
>Sent: Friday, March 09, 2001 12:56 PM
>To: zope@zope.org
>Subject: [Zope] Acquisition Problem ?
>
>
>Can anyone explain what's going on here - please ?
>
>I've got a dtml method 'mydtml_1' which processes a file uploaded via a
>form - like this
>
><dtml-in "abcfile_read(REQUEST)">
> <dtml-let abc_text=sequence-item>
> <dtml-unless "_.len(abc_text)==0">
> <dtml-var mydtml_2>
> </dtml-unless>
> </dtml-let>
></dtml-in>
>
>In the dtml method mydtml_2 I have some code like this
>
><dtml-var
>expr="REQUEST.set('abc_text',external_method_that_returns_hello_world(abc_te
>xt))>
><dtml-var REQUEST>
><dtml-var abc_text>
>
>What happens is that the
><dtml-var REQUEST> shows abc_text having the new value of "Hello World"
>
>but the
><dtml-var abc_text> shows the value as it was in mydtml_1
>
>Presumably <dtml-var abc_text> is acquiring the value from mydtml_1.
>
>Can anyone tell me why ?
>
>And how to get <dtml-var abc_text> to return the value I want i.e. "Hello
>World" ?
>
>This is Zope 2.2.1
>
>
>(Note - if I do not put <dtml-var mydtml_2> inside the <dtml-in> and
><dtml-let> constructs then it works as expected, e.g.
><dtml-call "REQUEST.set('abc_text','Goodbye Forever')">
><dtml-var mydtml_2>
>
> will render "Hello World" )
>
>Many thanks
>
>
>Richard Moon
>richard@dcs.co.uk
>
>
>
>_______________________________________________
>Zope maillist - Zope@zope.org
>http://lists.zope.org/mailman/listinfo/zope
>** No cross posts or HTML encoding! **
>(Related lists -
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )
Richard Moon
richard@dcs.co.uk