[CPS-devel] (no subject)

Anahide Tchertchian at at nuxeo.com
Wed Mar 7 12:09:19 CET 2007


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: at at nuxeo.com - Tel: +33 (0)1 40 33 79 87
http://www.nuxeo.com - http://www.nuxeo.org



This list archive provided by Nuxeo, the leaders of open source ECM. Check out the Nuxeo 5 open source, standards-based ECM project.