[Zope] why is this?

Joh Johannsen jojo@farm9.com
Wed, 07 Mar 2001 11:02:52 -0800


Siggy Brentrup wrote:
> 
> Joh Johannsen <jojo@farm9.com> writes:
> 
> > This works:
> >
> >   <dtml-call "REQUEST.set('asplit',_.string.split(bigstring,'&'))">
> >   <dtml-call "REQUEST.set('aname',asplit[0])">
> >   <dtml-var aname>
> >
> > But this doesn't:
> >
> >   <dtml-call "REQUEST.set('asplit',_.string.split(bigstring,'&'))">
> >   <dtml-var asplit[0]>
> >
> > Why is that?  What does work for list access?
> 
> It's fundamental dtml,
> 
> <dtml-var aname>       is a shorthand for <dtml-var name="aname">
> <dtml-val "asplit[0]'> is a shorthand for <dtml-var expr="asplit[0]">
> 
> you were trying to use an expression where a name was expected.
> 
> 
yes, thanks.

Not being aware of the shorthand notation, I just assumed it was Python,
where you can refer to variables and list members without quotes.  

This "almost-Python" approach seems to confuse alot of people.  What I'd
really like to do with the above example is just directly embed Python:

<dtml-let asplit=string.split(bigstring,'&')>
<dtml-var asplit[0]>

Isn't that a bit more straightforward than:

<dtml-call "REQUEST.set('asplit',_.string.split(bigstring,'&'))">
<dtml-var "asplit[0]">

This second one requires knowing: 
 
1. REQUEST.set (and no doubt there are alternatives for setting a
variable which I'm not aware of)
2. enclosing REQUEST.set in quotes
3. single quoting variable name as the first parameter to REQUEST.set
4. NOT quoting second parameter to REQUEST.set
5. using "_." before any namespace reference (sometimes, not exactly
sure when) in the second parameter to REQUEST.set
6. quoting the list reference (as opposed to NOT quoting a variable
reference)

It seems like python-Zope integration could be alot more transparent.

JJ