I think that the following solution is simpler to use  (understand?)
validators:

https://groups.google.com/forum/?fromgroups#!topic/webpy/6NtP1V_3z14


On Thu, Jun 6, 2013 at 10:03 AM, Daniel Crisan <[email protected]>wrote:

> I could not find one and I was searching for a few hours on the first page
> on Google :)
>
>
> On Thu, Jun 6, 2013 at 9:18 AM, Steven Brown <[email protected]>wrote:
>
>>  Is there a comprehensive guide to doing validators?  The website just
>> has a few examples of magic incantations :)
>>
>>
>> On 06/04/2013 02:06 PM, daniel crisan wrote:
>>
>> 'Solve it,
>>
>>  Add the following line before "register_form =...."
>>       v = [form.Validator("Check more than 3", lambda x: len(x.check)>3)]
>> Then modify line "register_form= ....."
>>       register_form = form.Form(validators=v, *args)
>> to add the validator.
>>
>>  Then modify line: "if not f.validates():"
>>       if not f.validates(web.input(check=[])):
>> to pass the submited data and validate it.
>>
>>
>>  Hope this helps. I was searching the net for a "quick" solution but
>> could not find one.
>>
>> On Tuesday, June 4, 2013 7:16:58 PM UTC+3, daniel crisan wrote:
>>>
>>> Hello,
>>>
>>>  I need to validate a form only if X or more checkboxes were checked
>>> and I cannot find out how. Bellow is the simple code which needs the
>>> validator (there are 5 checkboxes - same name - and the form should
>>> validate only if 3 or more were selected). Can you please point me to the
>>> right direction?
>>>
>>>  import web
>>> from web import form
>>>
>>>  render = web.template.render('**templates/')
>>>
>>>  urls = ('/', 'index')
>>> app = web.application(urls, globals())
>>>
>>>  args = ()
>>> for i in range(0, 5):
>>>     args = args + ( form.Checkbox('check', value=str(i) ), )
>>>
>>> args = args + (form.Button("submit", type="submit",
>>> description="Submit"),)
>>>
>>>  register_form = form.Form(*args)
>>>
>>>  class index:
>>>     def GET(self):
>>>         # do $:f.render() in the template
>>>         f = register_form()
>>>         return render.register(f)
>>>
>>>      def POST(self):
>>>         f = register_form()
>>>         if not f.validates():
>>>             return render.register(f)
>>>         else:
>>>             pdata=web.input(check=[])
>>>             print pdata
>>>
>>> if __name__=="__main__":
>>>     web.internalerror = web.debugerror
>>>     app.run()
>>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "web.py" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/webpy?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "web.py" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/webpy?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>
>
> --
> This message is confidential. It may also be privileged or otherwise
> protected by work product immunity or other legal rules. If you have
> received it by mistake please let me know by reply and then delete it from
> your system; you should not copy the message or disclose its contents to
> anyone.
>



-- 
This message is confidential. It may also be privileged or otherwise
protected by work product immunity or other legal rules. If you have
received it by mistake please let me know by reply and then delete it from
your system; you should not copy the message or disclose its contents to
anyone.

-- 
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/webpy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to