chas wrote:
Just when I thought I understood how to use _['var' + x] as an equivalent of eval() within DTML, this one trips me up :
[snip]
But this does not : <dtml-var "_['Images.img' + x]">
This would find a single object which has Id ('Images.img'+x). In fact, one of the primary reasons for using _[''] notation in expressions is to allow references to Ids with periods and other characters in them which are not legal in Python identifiers. _[] is not like eval(), it's a simple namespace lookup. The DTML equivalent of eval() is <dtml-var expr="expression"> (no, I'm not kidding!) In your case, you want either <dtml-with Images><dtml-var "_['img'+x]"></dtml-with>, or my unreleased Product which allows expressions like <dtml-var "_['Images/img'+x]">.