that's work perfectly, thank you so much, anthony, never thought that the 
insert to database table can use if conditional explicitly. 
another work around, i found the root cause, it is because the value of the 
boolean type when assigned to session. 
i confuse the boolean value (in controllers, views, database and models). 
in database the boolean data type have the value rather *T or F*, during 
using insert to database table it use the value *True, False or leave it 
empty*, in form in the controllers and views it use the value *'on', None, 
'None' or ''*

thanks and best regards,
stifan

On Saturday, February 6, 2016 at 2:51:41 PM UTC+7, Anthony wrote:
>
> Based on your code, it appears the values of bevel and gosok_halus are not 
> in fact boolean but are the string values "on" or "None". You haven't shown 
> how the values were put into the session, so if you were expecting them to 
> be booleans, it's hard to say why they are not.
>
> In any case, you can greatly simplify your code as follows:
>
> for counter, (id, quantity, length_in_cm, width_in_cm, total_square_meter, 
> *bevel, 
> gosok_halus*) in session.delivery_order_detail.items():
>    db.delivery_order_detail.insert(delivery_order_no = delivery_order_id, 
>                                     product = id, 
>                                     quantity = quantity, 
>                                     length_in_cm = length_in_cm, 
>                                     width_in_cm = width_in_cm, 
>                                     total_square_meter = 
> total_square_meter, 
>                                     *bevel = True if bevel == 'on' else 
> False,*
> *                                    gosok_halus = True if gosok_halus == 
> 'on' else False)*
>
> Anthony
>
> On Saturday, February 6, 2016 at 2:16:56 AM UTC-5, 黄祥 wrote:
>>
>> why during store boolean data type in session, always return true during 
>> insert?
>> e.g. problem
>> for counter, (id, quantity, length_in_cm, width_in_cm, 
>> total_square_meter, *bevel, gosok_halus*) in 
>> session.delivery_order_detail.items():
>> db.delivery_order_detail.insert(delivery_order_no = delivery_order_id, 
>> product = id, 
>> quantity = quantity, 
>> length_in_cm = length_in_cm, 
>> width_in_cm = width_in_cm, 
>> total_square_meter = total_square_meter, 
>> *bevel = bevel,*
>> * gosok_halus = gosok_halus)*
>> e.g. solve
>> for counter, (id, quantity, length_in_cm, width_in_cm, 
>> total_square_meter, *bevel, gosok_halus*) in 
>> session.delivery_order_detail.items():
>> if bevel == 'None' and gosok_halus == 'None':
>> db.delivery_order_detail.insert(delivery_order_no = delivery_order_id, 
>> product = id, 
>> quantity = quantity, 
>> length_in_cm = length_in_cm, 
>> width_in_cm = width_in_cm, 
>> total_square_meter = total_square_meter, 
>> bevel = False,
>> gosok_halus = False)
>> elif bevel == 'on' and gosok_halus == 'None':
>> db.delivery_order_detail.insert(delivery_order_no = delivery_order_id, 
>> product = id, 
>> quantity = quantity, 
>> length_in_cm = length_in_cm, 
>> width_in_cm = width_in_cm, 
>> total_square_meter = total_square_meter, 
>> bevel = True,
>> gosok_halus = False)
>> elif bevel == 'None' and gosok_halus == 'on':
>> db.delivery_order_detail.insert(delivery_order_no = delivery_order_id, 
>> product = id, 
>> quantity = quantity, 
>> length_in_cm = length_in_cm, 
>> width_in_cm = width_in_cm, 
>> total_square_meter = total_square_meter, 
>> bevel = False,
>> gosok_halus = True)
>> elif bevel == 'on' and gosok_halus == 'on':
>> db.delivery_order_detail.insert(delivery_order_no = delivery_order_id, 
>> product = id, 
>> quantity = quantity, 
>> length_in_cm = length_in_cm, 
>> width_in_cm = width_in_cm, 
>> total_square_meter = total_square_meter, 
>> bevel = True,
>> gosok_halus = True)
>>
>> i must manually explicit using if condition about the boolean value (*bevel, 
>> gosok_halus*), is it normal, or is there any better way rather than this 
>> one?
>> thanks and best regards,
>> stifan
>>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to