Georges Racinet a écrit :

On Mar 7, 2007, at 10:38 AM, Winterflood, Jonathan wrote:

Hi all,

I'm developping a product, and in one of my form processing scripts, I'm having to handle a number of checkboxes with the same name, say,'boxname'.

In the context.REQUEST.form dictionary, I have this:
with only one box ticked, dict['boxname'] is 'value_of_the_box'
with multiple boxes ticked, dict['boxname'] is a list of these values

I'm trying to change the single string to a one-element list, however, I can't test the type of the value... Whenever I try to use the __class__ attribute, my script won't compile in Zope ( "__class__ is an invalid attribute" ...)
Therefore I can't test whether I have a list or a string.
I would use isinstance(val,list), but 'list' seems to behave as though it was 'list()' inside Zope, instead of giving me <type 'list'>


Both these work in a python console... I'm obviously missing something, but what?

Aah, restricted code :-) You can't access all attributes, and some other magic occurs. Sometimes, it's not homogeneous to current Python. I don't know about lists, but I do know that you can't use 'set' (appeared in
python 2.4).


Is there a better way?

Anyway, I think that if you explicit specify type your input in the html <input name=l"ist:boxname"> then you should get a list no matter what.
I'm not 100% sure, but you should give it a try.

Yes it works, except it's <input name="boxname:list" ...(type="checkbox, etc.") />. You can even add <input type="hidden" name="boxname:tokens:default" /> if you'd like to get 'boxname' in the request form even if no checkbox is selected. Using "tokens:default" will set it to an empty list.

Regards,

--
Anahide Tchertchian, Nuxeo
Mail: [EMAIL PROTECTED] - Tel: +33 (0)1 40 33 79 87
http://www.nuxeo.com - http://www.nuxeo.org
_______________________________________________
cps-devel mailing list
http://lists.nuxeo.com/mailman/listinfo/cps-devel

Reply via email to