[Zope] Dynamic dictionary keys?

Andrew Hedges andrew at clearwired.com
Mon Feb 27 12:39:46 EST 2006

Andreas and Jonathan,

Thanks for the responses!  As I said, I am completely new to Zope/ 
Python, so I appreciate your help.  I'll look into how this could be  
done with a Python script instead of DTML, but this version of our  
product is all DTML, so that's why I'm using this solution for now.   
Next version we're moving to Zope 3, so things should get better!

In any case, Jonathan's solution worked (though he had single quotes  
around 'calstart' which shouldn't have been there.)  What I'm doing  
is setting up a hash table so I can do some branching in a separate  
loop.  I have a feeling I'm building a hash table for something I may  
be able to access directly, but it's working, so I don't want to take  
up more space in peoples' inboxes.  Thanks again for the quick help!


On Feb 27, 2006, at 10:15 AM, Andreas Pakulat wrote:

> On 27.02.06 09:56:49, Andrew Hedges wrote:
>> Allow me to preface this by saying I am a complete newbie to Zope  
>> (I prefer to
>> think of it as beginner's mind...).  What I am attempting to do is  
>> dynamically
>> add items to a dictionary, but Zope complains "keyword can't be an  
>> expression".
>>  Here's the reduced case of my code:
>> <dtml-let eventsDict="{}">
>>    <dtml-let calstart="somestring">
>>       <dtml-call "REQUEST.set(eventsDict[calstart]=id)">
>>    </dtml-let>
>> </dtml-let>
> First let me tell you: Write a python script for things like this, it
> really belongs into one.
> Second thing: your dtml-call has a serious error, eventsDict[..]=id is
> executed but it doesn't produce anything so set is called with no
> parameters and this is wrong. set needs 2 parameters, one beeing a
> string as the key and a second as the value which can be of any type
> python knows.
> I also don't get what this snippet should do?
> Andreas

More information about the Zope mailing list