[Zope] Request & has_key
Philip Kilner
phil at xfr.co.uk
Wed Apr 21 14:57:10 EDT 2004
Hi List,
I'm having problems with testing for the existence of a key in my
request. I've had similar problems in the past, and asked the list in
the past, but always managed to fumble my way out of them - now I seem
to be 100% stuck!
I'm working on a page template which calls a python script. This script
needs to: -
- Test for the existence of a counter called "job_step".
- If it does not exist, initialise it as one (it's an integer).
- If it does exist, perform conditional tasks based on it's value.
My script reads, in part: -
req = context.REQUEST
if req.has_key('job_step'):
if req.job_step == 1:
do that...
else:
do the other...
else:
container.REQUEST.set('job_step', 1)
do this...
...and that's where my problem lies - the test /always/ fails!
If I throw the whole request into the page template, I can see that the
key "job_step" is listed, with a value of one. Subsequently, a second
script called by the same template increments it to two, which I can
also see, if I comment out the line which sets it to one - but when the
whole page is thrown for "step 2", the test fails and the value is reset
to one.
So: -
- Can anyone help me understand what I'm doing wrong?
- I've been advised in the past that "REQUEST", although it "acts" like
a dictionary is not actually a dictionary. Is this so?
- Is there a way of testing that "req" is a dictionary?
- If it isn't, shouldn't "has_key" barf?
This feels like a basic, stupid, question, but I'm stuck and - apart
from reminding me that I've been here before, Google is apparently /not/
my friend today...
TIA
Cheers,
PhilK
More information about the Zope
mailing list