Note, the problem is not with the validator -- if you pass it the value 
False, it will successfully validate. The issue is that when a checkbox is 
not checked, the browser sends nothing back for that form field (it does 
not send back a value of False), so the value passed to the validator ends 
up being None rather than False.

In your case, just change your code slightly so the validator doesn't get 
assigned in the case of boolean fields. Assuming you have the field type 
stored somehow:

if is_required and type != 'boolean':

Or better yet, just set is_required to False for boolean fields.

Anthony

On Thursday, December 4, 2014 7:00:00 AM UTC-5, Francisco Ribeiro wrote:
>
> Kiran, 
> I did not assign the default value of False explicitly but implicitly 
> since it's already the default.
>
> Anthony, 
> I understand the interpretation currently in place but if you think about 
> this, validators are supposed to accept allowed values *first* and reject 
> all others. True and False are the allowed values here and must have 
> precedence to be accepted. Checkboxes are UIs for boolean types, so an 
> unticked box means False, it does not mean NULL.
>
> On my scenario I have a dynamically generated form using SQLFORM.factory() 
> where one my attributes for each form field is "is_required". So these 
> things are stored on the DB, defining how the form should be generated and 
> the way I was handling it was by adding the IS_NOT_EMPTY() validator to the 
> form field if has the parameter is_required == True on its definition. It 
> works fine for all other input fields tested where IS_NOT_EMPTY() makes 
> sense but checkboxes broke it.
>
> Kind regards,
> Francisco
>
> On Thursday, 4 December 2014 11:48:04 UTC, Anthony wrote:
>>
>> If a boolean widget can only be true or false and never empty, then there 
>> is no need for this validator to begin with, so just remove it. Are you 
>> suggesting that the validator itself should be changed to always return 
>> success for booleans? If so, what would be the point? 
>>
>> Anthony
>
>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to