On Wed, 8 May 2002, Lennart Regebro wrote:
From: "John Adams" <jadams@inktomi.com>
If I was doing this in perl it'd be quite easy; I could check the query variable, and act on it -- but now I have to deal with things like not being able to even examine the variable without throwing an exception
This has nothing to do with either Zope or Python. It has to do with how HTML forms are done, and yes, I agree that the people designing that standard are a bunch of morons.
Ahh, we're confused here, what I meant by my question was: The first time it's sent, if noone's checked anything yet, then check the first radio button by default. Now, granted, I do agree with you that CGI processing is just stupid -- if noone checks the checkbox, you never get the form variable back AT ALL, and that's bad design on the part of the protocol.
There are basically two solutions to this.
1. Define all the variables in the python method called, and let have defaults on the optional variables. LIke so:
def form_submission_method( self, variable1, variable2, thidisacheckbox=None, REQUEST): #Now you can be sure there is a "thisisacheckbox" variable, and it will either be set, or it will be None if thisisacheckbox: return "It's checked!"
2. Do a check like this: if hasattr(request,'perm_or_temp') and request.perm_or_temp == 'P':
Btw, when doing forms, I suggest you look at formulator. It helps you validate forms.
Okay, I'll beat on this at work tomorrow. I've got a few good solutions to try now. Thanks for your help. --john -- John Adams . Sr. Security Engineer . Inktomi Corporation